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

ruby-grape / grape / 30306850824
97%
master: 97%

Build:
Build:
LAST BUILD BRANCH: fix/adversarial-sweep-2026-08
DEFAULT BRANCH: master
Ran 27 Jul 2026 09:26PM UTC
Jobs 32
Files 167
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

27 Jul 2026 09:26PM UTC coverage: 96.963% (-0.003%) from 96.966%
30306850824

Pull #2835

github

ericproulx
Return the compiled instance from Grape::API::Instance.compile!

.call and .recognize_path compiled the API and then read @instance again
to serve the request:

    def call(env)
      compile!
      @instance.call(env)
    end

change! (which `helpers` and `mount` invoke on a live API) sets @instance
to nil, so a change! landing between the two reads leaves both methods
calling nil -- NoMethodError: undefined method 'call' for nil.

Have compile! hand back the instance it compiled and let both callers use
that value, so the read is atomic. compile! previously returned nil when
the API was already compiled, so always returning the instance is a
strict superset of its old contract.

The window is small in practice -- a request thread spends nearly all of
its time inside `new` when recompiling -- so this is a latent race rather
than one reproduced under natural contention; the specs drive change!
into the window deterministically.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Pull Request #2835: Return the compiled instance from Grape::API::Instance.compile!

1193 of 1282 branches covered (93.06%)

Branch coverage included in aggregate %.

3788 of 3855 relevant lines covered (98.26%)

26855.66 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-4.0-gemfiles/rails_8_0.gemfile - 30306850824.1 27 Jul 2026 09:26PM UTC 167
95.58
GitHub Action Run
2 run-3.4-gemfiles/rails_7_2.gemfile - 30306850824.2 27 Jul 2026 09:27PM UTC 167
95.58
GitHub Action Run
3 run-4.0-gemfiles/rack_3_1.gemfile - 30306850824.3 27 Jul 2026 09:27PM UTC 166
95.58
GitHub Action Run
4 run-3.3-gemfiles/rack_3_1.gemfile - 30306850824.4 27 Jul 2026 09:26PM UTC 166
95.58
GitHub Action Run
5 run-4.0-gemfiles/grape_swagger.gemfile - 30306850824.5 27 Jul 2026 09:26PM UTC 166
55.49
GitHub Action Run
6 run-4.0-gemfiles/rack_3_0.gemfile - 30306850824.6 27 Jul 2026 09:26PM UTC 166
95.58
GitHub Action Run
7 run-3.4-gemfiles/rails_8_1.gemfile - 30306850824.7 27 Jul 2026 09:26PM UTC 167
95.58
GitHub Action Run
8 run-3.3-gemfiles/rack_2_2.gemfile - 30306850824.8 27 Jul 2026 09:26PM UTC 166
95.54
GitHub Action Run
9 run-3.3-gemfiles/rack_3_0.gemfile - 30306850824.9 27 Jul 2026 09:26PM UTC 166
95.58
GitHub Action Run
10 run-3.4-gemfiles/rack_3_0.gemfile - 30306850824.10 27 Jul 2026 09:26PM UTC 166
95.58
GitHub Action Run
11 run-4.0-gemfiles/multi_xml_0_8.gemfile - 30306850824.11 27 Jul 2026 09:26PM UTC 166
47.28
GitHub Action Run
12 run-4.0-gemfiles/rails_8_1.gemfile - 30306850824.12 27 Jul 2026 09:27PM UTC 167
95.58
GitHub Action Run
13 run-4.0-gemfiles/hashie.gemfile - 30306850824.13 27 Jul 2026 09:26PM UTC 166
62.13
GitHub Action Run
14 run-4.0-gemfiles/grape_entity.gemfile - 30306850824.14 27 Jul 2026 09:26PM UTC 166
50.56
GitHub Action Run
15 run-4.0-gemfiles/rack_3_2.gemfile - 30306850824.15 27 Jul 2026 09:26PM UTC 166
95.58
GitHub Action Run
16 run-3.3-Gemfile - 30306850824.16 27 Jul 2026 09:26PM UTC 166
95.58
GitHub Action Run
17 run-4.0-gemfiles/multi_json_1_20.gemfile - 30306850824.17 27 Jul 2026 09:26PM UTC 166
47.89
GitHub Action Run
18 run-4.0-gemfiles/rack_2_2.gemfile - 30306850824.18 27 Jul 2026 09:26PM UTC 166
95.54
GitHub Action Run
19 run-3.4-Gemfile - 30306850824.19 27 Jul 2026 09:27PM UTC 166
95.58
GitHub Action Run
20 run-3.3-gemfiles/rack_3_2.gemfile - 30306850824.20 27 Jul 2026 09:26PM UTC 166
95.58
GitHub Action Run
21 run-3.3-gemfiles/rails_7_2.gemfile - 30306850824.21 27 Jul 2026 09:26PM UTC 167
95.58
GitHub Action Run
22 run-4.0-gemfiles/multi_json.gemfile - 30306850824.22 27 Jul 2026 09:27PM UTC 166
47.85
GitHub Action Run
23 run-3.4-gemfiles/rack_2_2.gemfile - 30306850824.23 27 Jul 2026 09:27PM UTC 166
95.54
GitHub Action Run
24 run-3.4-gemfiles/rails_8_0.gemfile - 30306850824.24 27 Jul 2026 09:27PM UTC 167
95.58
GitHub Action Run
25 run-4.0-gemfiles/rails_7_2.gemfile - 30306850824.25 27 Jul 2026 09:27PM UTC 167
95.58
GitHub Action Run
26 run-3.4-gemfiles/rack_3_2.gemfile - 30306850824.26 27 Jul 2026 09:27PM UTC 166
95.58
GitHub Action Run
27 run-3.3-gemfiles/rails_8_1.gemfile - 30306850824.27 27 Jul 2026 09:26PM UTC 167
95.58
GitHub Action Run
28 run-4.0-gemfiles/multi_xml.gemfile - 30306850824.28 27 Jul 2026 09:26PM UTC 166
47.24
GitHub Action Run
29 run-4.0-Gemfile - 30306850824.29 27 Jul 2026 09:27PM UTC 166
95.58
GitHub Action Run
30 run-3.3-gemfiles/rails_8_0.gemfile - 30306850824.30 27 Jul 2026 09:26PM UTC 167
95.58
GitHub Action Run
31 run-4.0-gemfiles/dry_validation.gemfile - 30306850824.31 27 Jul 2026 09:27PM UTC 166
58.2
GitHub Action Run
32 run-3.4-gemfiles/rack_3_1.gemfile - 30306850824.32 27 Jul 2026 09:27PM UTC 166
95.58
GitHub Action Run
Source Files on build 30306850824
  • Tree
  • List 167
  • 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 #30306850824
  • Pull Request #2835
  • PR Base - master (#30306029090)
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