• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

ruby-grape / grape / 33920012157
97%

Build:
DEFAULT BRANCH: master
Ran 04 Sep 2026 09:12PM UTC
Jobs 32
Files 169
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

04 Sep 2026 09:12PM UTC coverage: 96.964% (+0.008%) from 96.956%
33920012157

push

github

web-flow
Cut per-request work out of the endpoint, validation and router paths (#2895)

* Cut per-request work out of the endpoint, validation and router paths

Six independent hot-path changes, none of which alters behaviour: the
response of a 77-case request matrix (versions, formats, validation errors,
nested and array params, `given`, splats, cascade, auto-OPTIONS/405,
percent-encoded paths) is byte-identical to master.

The router found the matching alternative of its compiled union by capture
*name*: one `MatchData#[]` per registered route, each resolving a String
through the pattern's name table. Group numbers index the match region
directly. They are a property of the union rather than of a route's own
pattern -- every route ahead of it contributes however many groups its
pattern declares -- so `compile!` reads `named_captures` once per union and
writes each route's number back through `resolve_capture_group!`.

`AttributesIterator#each` wrapped the scope's params in an Array for
`#do_each` to unwrap on its only iteration. A scope resolves to a Hash unless
the declaration nests arrays, and then neither the nesting descent nor the
index bookkeeping applies, so it yields the Hash straight to
`yield_attributes`. `SingleAttributeIterator` asks `empty?` once for the
attribute list rather than once per attribute; the answer does not depend on
the attribute and costs a `respond_to?`.

`CoerceValidator#validate_param!` read `params[attr_name]` three times --
through a `HashWithIndifferentAccess` key conversion each time -- although
`coerce_value` only ever sees the value. `PrimitiveCoercer` resolves the
input classes Virtus refused (`REJECTED_INPUTS`) and `type != String` in its
constructor rather than re-deriving them from `type` for every value.
`Validators::Base#validate` reads `request.params` once.

`Middleware::Formatter` reads `default_format`, `format`, `formatters` and
`parsers` off ivars assigned in `#initialize` instead of delegating into the
frozen... (continued)

1245 of 1339 branches covered (92.98%)

Branch coverage included in aggregate %.

32 of 32 new or added lines in 9 files covered. (100.0%)

3961 of 4030 relevant lines covered (98.29%)

27045.19 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-3.4-gemfiles/rack_2_2.gemfile - 33920012157.1 04 Sep 2026 09:12PM UTC 168
95.69
GitHub Action Run
2 run-4.0-gemfiles/rails_7_2.gemfile - 33920012157.2 04 Sep 2026 09:13PM UTC 169
95.73
GitHub Action Run
3 run-3.3-gemfiles/rack_3_2.gemfile - 33920012157.3 04 Sep 2026 09:13PM UTC 168
95.73
GitHub Action Run
4 run-3.4-Gemfile - 33920012157.4 04 Sep 2026 09:13PM UTC 168
95.73
GitHub Action Run
5 run-4.0-gemfiles/rails_8_1.gemfile - 33920012157.5 04 Sep 2026 09:13PM UTC 169
95.73
GitHub Action Run
6 run-4.0-gemfiles/hashie.gemfile - 33920012157.6 04 Sep 2026 09:12PM UTC 167
61.7
GitHub Action Run
7 run-3.3-gemfiles/rails_8_1.gemfile - 33920012157.7 04 Sep 2026 09:13PM UTC 169
95.73
GitHub Action Run
8 run-3.3-gemfiles/rack_3_0.gemfile - 33920012157.8 04 Sep 2026 09:12PM UTC 168
95.73
GitHub Action Run
9 run-3.3-gemfiles/rack_2_2.gemfile - 33920012157.9 04 Sep 2026 09:13PM UTC 168
95.69
GitHub Action Run
10 run-4.0-gemfiles/grape_entity.gemfile - 33920012157.10 04 Sep 2026 09:13PM UTC 167
50.31
GitHub Action Run
11 run-3.4-gemfiles/rack_3_2.gemfile - 33920012157.11 04 Sep 2026 09:13PM UTC 168
95.73
GitHub Action Run
12 run-4.0-gemfiles/rack_3_1.gemfile - 33920012157.12 04 Sep 2026 09:12PM UTC 168
95.73
GitHub Action Run
13 run-4.0-gemfiles/grape_swagger.gemfile - 33920012157.13 04 Sep 2026 09:13PM UTC 167
55.16
GitHub Action Run
14 run-3.4-gemfiles/rack_3_0.gemfile - 33920012157.14 04 Sep 2026 09:12PM UTC 168
95.73
GitHub Action Run
15 run-4.0-gemfiles/rack_2_2.gemfile - 33920012157.15 04 Sep 2026 09:12PM UTC 168
95.69
GitHub Action Run
16 run-4.0-gemfiles/multi_xml.gemfile - 33920012157.16 04 Sep 2026 09:12PM UTC 167
46.97
GitHub Action Run
17 run-4.0-gemfiles/multi_xml_0_8.gemfile - 33920012157.17 04 Sep 2026 09:12PM UTC 167
47.01
GitHub Action Run
18 run-3.3-gemfiles/rails_7_2.gemfile - 33920012157.18 04 Sep 2026 09:13PM UTC 169
95.73
GitHub Action Run
19 run-3.3-gemfiles/rack_3_1.gemfile - 33920012157.19 04 Sep 2026 09:13PM UTC 168
95.73
GitHub Action Run
20 run-4.0-gemfiles/rack_3_0.gemfile - 33920012157.20 04 Sep 2026 09:13PM UTC 168
95.73
GitHub Action Run
21 run-3.4-gemfiles/rails_8_0.gemfile - 33920012157.21 04 Sep 2026 09:13PM UTC 169
95.73
GitHub Action Run
22 run-4.0-gemfiles/dry_validation.gemfile - 33920012157.22 04 Sep 2026 09:13PM UTC 167
57.73
GitHub Action Run
23 run-4.0-gemfiles/rails_8_0.gemfile - 33920012157.23 04 Sep 2026 09:13PM UTC 169
95.73
GitHub Action Run
24 run-4.0-Gemfile - 33920012157.24 04 Sep 2026 09:13PM UTC 168
95.73
GitHub Action Run
25 run-3.4-gemfiles/rack_3_1.gemfile - 33920012157.25 04 Sep 2026 09:13PM UTC 168
95.73
GitHub Action Run
26 run-3.3-gemfiles/rails_8_0.gemfile - 33920012157.26 04 Sep 2026 09:13PM UTC 169
95.73
GitHub Action Run
27 run-4.0-gemfiles/rack_3_2.gemfile - 33920012157.27 04 Sep 2026 09:13PM UTC 168
95.73
GitHub Action Run
28 run-4.0-gemfiles/multi_json_1_20.gemfile - 33920012157.28 04 Sep 2026 09:12PM UTC 167
47.52
GitHub Action Run
29 run-3.4-gemfiles/rails_8_1.gemfile - 33920012157.29 04 Sep 2026 09:13PM UTC 169
95.73
GitHub Action Run
30 run-3.3-Gemfile - 33920012157.30 04 Sep 2026 09:13PM UTC 168
95.73
GitHub Action Run
31 run-3.4-gemfiles/rails_7_2.gemfile - 33920012157.31 04 Sep 2026 09:13PM UTC 169
95.73
GitHub Action Run
32 run-4.0-gemfiles/multi_json.gemfile - 33920012157.32 04 Sep 2026 09:12PM UTC 167
47.48
GitHub Action Run
Source Files on build 33920012157
  • Tree
  • List 169
  • Changed 9
  • Source Changed 9
  • Coverage Changed 9
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #33920012157
  • d47505d2 on github
  • Prev Build on master (#33914348199)
  • Next Build on master (#33936248110)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc