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

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

Build:
Build:
LAST BUILD BRANCH: fix/base-only-rescue-handlers
DEFAULT BRANCH: master
Ran 12 Jul 2026 12:23PM UTC
Jobs 32
Files 168
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

12 Jul 2026 12:22PM UTC coverage: 96.665% (+0.004%) from 96.661%
29192506145

Pull #2793

github

ericproulx
Add Grape::Mountable marker to identify a Grape app

Grape distinguished a mounted Grape app from a bare Rack app by duck-typing
on an incidental internal method (`respond_to?(:inheritable_setting)`).
That is brittle: Grape::API and Grape::API::Instance share no common
ancestor and don't even respond to the same methods (mount_instance vs
inheritable_setting/endpoints), so there was no single predicate and the
checks keyed on a settings method that has nothing to do with mountability.

Introduce a Grape::Mountable marker extended by both Grape::API and
Grape::API::Instance, giving one explicit `is_a?(Grape::Mountable)`
predicate. Route the identity checks through it: Endpoint#bare_rack_app?
(used for forward_match) and the mount branch in DSL::Routing.

Capability checks that go on to call a stage-specific method are left as
respond_to? on purpose (a Mountable does not respond to every such method):
`respond_to?(:mount_instance)` still gates the remountable-class stage,
`respond_to?(:endpoints)` still guards reading endpoints, and the settings
inheritance check still guards calling inheritable_setting.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
Pull Request #2793: Add Grape::Mountable marker to identify a Grape app

1127 of 1222 branches covered (92.23%)

Branch coverage included in aggregate %.

7 of 8 new or added lines in 7 files covered. (87.5%)

5 existing lines in 1 file now uncovered.

3597 of 3665 relevant lines covered (98.14%)

23315.1 hits per line

Uncovered Changes

Lines Coverage ∆ File
1
93.8
0.0% lib/grape/middleware/error.rb

Coverage Regressions

Lines Coverage ∆ File
5
93.8
0.0% lib/grape/middleware/error.rb
Jobs
ID Job ID Ran Files Coverage
1 run-3.3-gemfiles/rails_8_0.gemfile - 29192506145.1 12 Jul 2026 12:24PM UTC 168
95.21
GitHub Action Run
2 run-3.4-gemfiles/rack_3_2.gemfile - 29192506145.2 12 Jul 2026 12:24PM UTC 167
95.21
GitHub Action Run
3 run-4.0-gemfiles/rails_8_0.gemfile - 29192506145.3 12 Jul 2026 12:24PM UTC 168
95.21
GitHub Action Run
4 run-4.0-gemfiles/dry_validation.gemfile - 29192506145.4 12 Jul 2026 12:24PM UTC 167
58.31
GitHub Action Run
5 run-4.0-gemfiles/rails_7_2.gemfile - 29192506145.5 12 Jul 2026 12:23PM UTC 168
95.21
GitHub Action Run
6 run-3.4-Gemfile - 29192506145.6 12 Jul 2026 12:24PM UTC 167
95.21
GitHub Action Run
7 run-4.0-gemfiles/grape_swagger.gemfile - 29192506145.7 12 Jul 2026 12:24PM UTC 167
55.32
GitHub Action Run
8 run-3.4-gemfiles/rack_2_2.gemfile - 29192506145.8 12 Jul 2026 12:24PM UTC 167
95.16
GitHub Action Run
9 run-3.3-gemfiles/rack_2_2.gemfile - 29192506145.9 12 Jul 2026 12:25PM UTC 167
95.16
GitHub Action Run
10 run-3.3-gemfiles/rack_3_0.gemfile - 29192506145.10 12 Jul 2026 12:24PM UTC 167
95.2
GitHub Action Run
11 run-3.3-gemfiles/rails_8_1.gemfile - 29192506145.11 12 Jul 2026 12:23PM UTC 168
95.21
GitHub Action Run
12 run-4.0-gemfiles/rack_3_1.gemfile - 29192506145.12 12 Jul 2026 12:24PM UTC 167
95.21
GitHub Action Run
13 run-4.0-gemfiles/rack_3_0.gemfile - 29192506145.13 12 Jul 2026 12:23PM UTC 167
95.21
GitHub Action Run
14 run-4.0-gemfiles/rack_2_2.gemfile - 29192506145.14 12 Jul 2026 12:24PM UTC 167
95.16
GitHub Action Run
15 run-3.3-gemfiles/rails_7_2.gemfile - 29192506145.15 12 Jul 2026 12:24PM UTC 168
95.21
GitHub Action Run
16 run-3.4-gemfiles/rack_3_0.gemfile - 29192506145.16 12 Jul 2026 12:24PM UTC 167
95.21
GitHub Action Run
17 run-4.0-gemfiles/grape_entity.gemfile - 29192506145.17 12 Jul 2026 12:24PM UTC 167
50.44
GitHub Action Run
18 run-4.0-gemfiles/multi_json.gemfile - 29192506145.18 12 Jul 2026 12:24PM UTC 167
47.65
GitHub Action Run
19 run-3.3-gemfiles/rack_3_1.gemfile - 29192506145.19 12 Jul 2026 12:24PM UTC 167
95.2
GitHub Action Run
20 run-3.3-gemfiles/rack_3_2.gemfile - 29192506145.20 12 Jul 2026 12:23PM UTC 167
95.2
GitHub Action Run
21 run-4.0-gemfiles/multi_xml.gemfile - 29192506145.21 12 Jul 2026 12:24PM UTC 167
47.12
GitHub Action Run
22 run-4.0-gemfiles/multi_json_1_20.gemfile - 29192506145.22 12 Jul 2026 12:24PM UTC 167
47.7
GitHub Action Run
23 run-4.0-gemfiles/hashie.gemfile - 29192506145.23 12 Jul 2026 12:23PM UTC 167
62.45
GitHub Action Run
24 run-3.4-gemfiles/rails_8_0.gemfile - 29192506145.24 12 Jul 2026 12:24PM UTC 168
95.21
GitHub Action Run
25 run-4.0-gemfiles/rack_3_2.gemfile - 29192506145.25 12 Jul 2026 12:24PM UTC 167
95.21
GitHub Action Run
26 run-3.4-gemfiles/rails_8_1.gemfile - 29192506145.26 12 Jul 2026 12:24PM UTC 168
95.21
GitHub Action Run
27 run-3.3-Gemfile - 29192506145.27 12 Jul 2026 12:23PM UTC 167
95.2
GitHub Action Run
28 run-3.4-gemfiles/rails_7_2.gemfile - 29192506145.28 12 Jul 2026 12:24PM UTC 168
95.21
GitHub Action Run
29 run-4.0-gemfiles/multi_xml_0_8.gemfile - 29192506145.29 12 Jul 2026 12:23PM UTC 167
47.16
GitHub Action Run
30 run-4.0-Gemfile - 29192506145.30 12 Jul 2026 12:24PM UTC 167
95.21
GitHub Action Run
31 run-3.4-gemfiles/rack_3_1.gemfile - 29192506145.31 12 Jul 2026 12:24PM UTC 167
95.21
GitHub Action Run
32 run-4.0-gemfiles/rails_8_1.gemfile - 29192506145.32 12 Jul 2026 12:24PM UTC 168
95.21
GitHub Action Run
Source Files on build 29192506145
  • Tree
  • List 168
  • Changed 4
  • Source Changed 4
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #29192506145
  • Pull Request #2793
  • PR Base - master (#28782563800)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc