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

ruby-grape / grape / 34775498203
99%
master: 99%

Build:
Build:
LAST BUILD BRANCH: fix/base-recorded-as-setup-step
DEFAULT BRANCH: master
Ran 13 Sep 2026 06:44PM UTC
Jobs 32
Files 170
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

13 Sep 2026 06:43PM UTC coverage: 99.094% (-0.07%) from 99.166%
34775498203

Pull #2943

github

ericproulx
Speed up matching among many parameterized routes

Every request is matched against its method's whole union: every route's
pattern, each expanding every literal character into an alternation with
its percent-encodings. On an API with 200 parameterized routes that match
is most of the request -- 43-53 µs of ~68 µs without a JIT -- and it grows
with every route registered ahead of the one that matches.

A route that spells out a literal at some path segment, with only literals
and plain params ahead of it, can only match paths carrying that literal
there. Router#compile! now picks, per method, the segment position that
splits the routes best and builds one union per literal there. Each holds
the routes that literal names plus every route the segment cannot tell
apart, in registration order, so matching a request against the union for
its own segment picks the route the full union would have picked.

Paths holding a '%' (a literal may match its percent-encoding) or a newline
(the patterns end in \Z) still go through the full union, as do methods
with fewer than eight routes or with no segment that halves them. A route
matched through a bucket reads its params off its own pattern, since its
capture groups are numbered for the full union.

A method's union, its routes and its buckets are kept as one entry, so a
request reads them through a single lookup rather than the two it made for
the union and the routes.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Pull Request #2943: Speed up matching among many parameterized routes

1384 of 1435 branches covered (96.45%)

Branch coverage included in aggregate %.

85 of 85 new or added lines in 2 files covered. (100.0%)

4196 of 4196 relevant lines covered (100.0%)

27297.17 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-3.3-Gemfile - 34775498203.1 13 Sep 2026 06:44PM UTC 169
97.8
GitHub Action Run
2 run-3.4-gemfiles/rack_3_0.gemfile - 34775498203.2 13 Sep 2026 06:44PM UTC 169
97.76
GitHub Action Run
3 run-3.4-gemfiles/rack_3_1.gemfile - 34775498203.3 13 Sep 2026 06:44PM UTC 169
97.76
GitHub Action Run
4 run-4.0-gemfiles/hashie.gemfile - 34775498203.4 13 Sep 2026 06:44PM UTC 168
60.12
GitHub Action Run
5 run-3.3-gemfiles/rack_3_2.gemfile - 34775498203.5 13 Sep 2026 06:44PM UTC 169
97.78
GitHub Action Run
6 run-4.0-gemfiles/grape_swagger.gemfile - 34775498203.6 13 Sep 2026 06:44PM UTC 168
53.42
GitHub Action Run
7 run-4.0-gemfiles/multi_json.gemfile - 34775498203.7 13 Sep 2026 06:44PM UTC 168
46.31
GitHub Action Run
8 run-4.0-gemfiles/grape_entity.gemfile - 34775498203.8 13 Sep 2026 06:44PM UTC 168
49.31
GitHub Action Run
9 run-4.0-gemfiles/multi_json_1_20.gemfile - 34775498203.9 13 Sep 2026 06:44PM UTC 168
46.35
GitHub Action Run
10 run-3.3-gemfiles/rack_2_2.gemfile - 34775498203.10 13 Sep 2026 06:44PM UTC 169
97.76
GitHub Action Run
11 run-3.3-gemfiles/rails_8_1.gemfile - 34775498203.11 13 Sep 2026 06:45PM UTC 170
97.78
GitHub Action Run
12 run-3.4-gemfiles/rack_2_2.gemfile - 34775498203.12 13 Sep 2026 06:44PM UTC 169
97.72
GitHub Action Run
13 run-4.0-gemfiles/rack_2_2.gemfile - 34775498203.13 13 Sep 2026 06:45PM UTC 169
97.72
GitHub Action Run
14 run-4.0-gemfiles/rack_3_2.gemfile - 34775498203.14 13 Sep 2026 06:45PM UTC 169
97.76
GitHub Action Run
15 run-4.0-gemfiles/rack_3_1.gemfile - 34775498203.15 13 Sep 2026 06:44PM UTC 169
97.78
GitHub Action Run
16 run-4.0-gemfiles/rails_8_0.gemfile - 34775498203.16 13 Sep 2026 06:44PM UTC 170
97.76
GitHub Action Run
17 run-4.0-gemfiles/rails_7_2.gemfile - 34775498203.17 13 Sep 2026 06:45PM UTC 170
97.78
GitHub Action Run
18 run-3.3-gemfiles/rails_8_0.gemfile - 34775498203.18 13 Sep 2026 06:44PM UTC 170
97.8
GitHub Action Run
19 run-4.0-gemfiles/rails_8_1.gemfile - 34775498203.19 13 Sep 2026 06:45PM UTC 170
97.76
GitHub Action Run
20 run-3.4-gemfiles/rails_8_0.gemfile - 34775498203.20 13 Sep 2026 06:45PM UTC 170
97.78
GitHub Action Run
21 run-4.0-gemfiles/multi_xml.gemfile - 34775498203.21 13 Sep 2026 06:44PM UTC 168
46.04
GitHub Action Run
22 run-3.4-gemfiles/rack_3_2.gemfile - 34775498203.22 13 Sep 2026 06:45PM UTC 169
97.78
GitHub Action Run
23 run-4.0-gemfiles/dry_validation.gemfile - 34775498203.23 13 Sep 2026 06:45PM UTC 168
56.31
GitHub Action Run
24 run-3.4-Gemfile - 34775498203.24 13 Sep 2026 06:45PM UTC 169
97.78
GitHub Action Run
25 run-4.0-gemfiles/rack_3_0.gemfile - 34775498203.25 13 Sep 2026 06:44PM UTC 169
97.76
GitHub Action Run
26 run-4.0-Gemfile - 34775498203.26 13 Sep 2026 06:44PM UTC 169
97.76
GitHub Action Run
27 run-3.4-gemfiles/rails_7_2.gemfile - 34775498203.27 13 Sep 2026 06:45PM UTC 170
97.76
GitHub Action Run
28 run-3.3-gemfiles/rails_7_2.gemfile - 34775498203.28 13 Sep 2026 06:44PM UTC 170
97.8
GitHub Action Run
29 run-3.3-gemfiles/rack_3_0.gemfile - 34775498203.29 13 Sep 2026 06:45PM UTC 169
97.78
GitHub Action Run
30 run-4.0-gemfiles/multi_xml_0_8.gemfile - 34775498203.30 13 Sep 2026 06:44PM UTC 168
46.08
GitHub Action Run
31 run-3.4-gemfiles/rails_8_1.gemfile - 34775498203.31 13 Sep 2026 06:45PM UTC 170
97.78
GitHub Action Run
32 run-3.3-gemfiles/rack_3_1.gemfile - 34775498203.32 13 Sep 2026 06:44PM UTC 169
97.8
GitHub Action Run
Source Files on build 34775498203
  • Tree
  • List 170
  • Changed 2
  • Source Changed 1
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #34775498203
  • Pull Request #2943
  • PR Base - master (#34770584299)
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