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

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

Build:
Build:
LAST BUILD BRANCH: mount-refresh-internal
DEFAULT BRANCH: master
Ran 29 Aug 2026 12:08PM 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

29 Aug 2026 12:08PM UTC coverage: 96.991% (+0.003%) from 96.988%
33251770064

push

github

ericproulx
Pass `required` as an argument instead of writing a presence key

`requires` announced that a parameter is required by writing
`opts[:presence]` into the options Hash it had just been handed, and
`optional` announced the opposite by writing nothing. That put an internal
signal in the same namespace as an API's own options, and the two shared a
key: `requires` silently overwrote a user-supplied `presence:`, while
`optional` silently honoured one and turned an optional parameter into a
required one through a key nothing documents.

    requires :a, presence: false   # ignored, :a is still required
    optional :a, presence: true    # honoured, :a is actually required

Pass the flag as an argument — `required: true` from `requires`, false from
`optional` — down to `validates`, which builds the presence entry itself.
The key stops being something the DSL writes into the caller's Hash.

The entry is now built after the caller has merged in any enclosing `with`
attributes, which fixes a second bug: `opts[:presence]` was assembled from
`opts[:message]` before that merge, so a group-level `message:` never
reached the presence validator.

A `presence:` supplied by an API still decides the outcome exactly as it
did, and warns, so nothing changes for code that relies on it until the key
is ignored outright.

Co-authored-by: Claude Opus 5 <noreply@anthropic.com>

1243 of 1334 branches covered (93.18%)

Branch coverage included in aggregate %.

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

3883 of 3951 relevant lines covered (98.28%)

27124.06 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-4.0-gemfiles/dry_validation.gemfile - 33251770064.1 29 Aug 2026 12:08PM UTC 167
57.85
GitHub Action Run
2 run-3.4-gemfiles/rails_8_0.gemfile - 33251770064.2 29 Aug 2026 12:09PM UTC 168
95.74
GitHub Action Run
3 run-3.4-gemfiles/rack_3_0.gemfile - 33251770064.3 29 Aug 2026 12:08PM UTC 167
95.74
GitHub Action Run
4 run-3.3-gemfiles/rack_3_2.gemfile - 33251770064.4 29 Aug 2026 12:08PM UTC 167
95.74
GitHub Action Run
5 run-4.0-gemfiles/multi_json_1_20.gemfile - 33251770064.5 29 Aug 2026 12:09PM UTC 167
47.38
GitHub Action Run
6 run-4.0-gemfiles/multi_json.gemfile - 33251770064.6 29 Aug 2026 12:08PM UTC 167
47.34
GitHub Action Run
7 run-3.4-Gemfile - 33251770064.7 29 Aug 2026 12:08PM UTC 167
95.74
GitHub Action Run
8 run-3.3-Gemfile - 33251770064.8 29 Aug 2026 12:09PM UTC 167
95.74
GitHub Action Run
9 run-4.0-gemfiles/rack_3_2.gemfile - 33251770064.9 29 Aug 2026 12:08PM UTC 167
95.74
GitHub Action Run
10 run-3.4-gemfiles/rack_3_2.gemfile - 33251770064.10 29 Aug 2026 12:09PM UTC 167
95.74
GitHub Action Run
11 run-4.0-gemfiles/grape_entity.gemfile - 33251770064.11 29 Aug 2026 12:08PM UTC 167
49.97
GitHub Action Run
12 run-3.4-gemfiles/rack_3_1.gemfile - 33251770064.12 29 Aug 2026 12:09PM UTC 167
95.74
GitHub Action Run
13 run-4.0-gemfiles/rails_8_1.gemfile - 33251770064.13 29 Aug 2026 12:09PM UTC 168
95.74
GitHub Action Run
14 run-3.3-gemfiles/rack_2_2.gemfile - 33251770064.14 29 Aug 2026 12:09PM UTC 167
95.7
GitHub Action Run
15 run-4.0-gemfiles/multi_xml_0_8.gemfile - 33251770064.15 29 Aug 2026 12:08PM UTC 167
46.81
GitHub Action Run
16 run-4.0-gemfiles/rack_3_1.gemfile - 33251770064.16 29 Aug 2026 12:09PM UTC 167
95.74
GitHub Action Run
17 run-3.3-gemfiles/rails_8_0.gemfile - 33251770064.17 29 Aug 2026 12:08PM UTC 168
95.74
GitHub Action Run
18 run-4.0-gemfiles/multi_xml.gemfile - 33251770064.18 29 Aug 2026 12:09PM UTC 167
46.77
GitHub Action Run
19 run-3.3-gemfiles/rack_3_0.gemfile - 33251770064.19 29 Aug 2026 12:09PM UTC 167
95.74
GitHub Action Run
20 run-3.3-gemfiles/rails_8_1.gemfile - 33251770064.20 29 Aug 2026 12:08PM UTC 168
95.74
GitHub Action Run
21 run-4.0-gemfiles/rails_7_2.gemfile - 33251770064.21 29 Aug 2026 12:09PM UTC 168
95.74
GitHub Action Run
22 run-4.0-gemfiles/rack_2_2.gemfile - 33251770064.22 29 Aug 2026 12:09PM UTC 167
95.7
GitHub Action Run
23 run-4.0-Gemfile - 33251770064.23 29 Aug 2026 12:08PM UTC 167
95.74
GitHub Action Run
24 run-4.0-gemfiles/grape_swagger.gemfile - 33251770064.24 29 Aug 2026 12:08PM UTC 167
55.16
GitHub Action Run
25 run-3.4-gemfiles/rack_2_2.gemfile - 33251770064.25 29 Aug 2026 12:09PM UTC 167
95.7
GitHub Action Run
26 run-3.3-gemfiles/rails_7_2.gemfile - 33251770064.26 29 Aug 2026 12:09PM UTC 168
95.74
GitHub Action Run
27 run-4.0-gemfiles/hashie.gemfile - 33251770064.27 29 Aug 2026 12:09PM UTC 167
61.83
GitHub Action Run
28 run-3.4-gemfiles/rails_7_2.gemfile - 33251770064.28 29 Aug 2026 12:09PM UTC 168
95.74
GitHub Action Run
29 run-4.0-gemfiles/rails_8_0.gemfile - 33251770064.29 29 Aug 2026 12:08PM UTC 168
95.74
GitHub Action Run
30 run-3.3-gemfiles/rack_3_1.gemfile - 33251770064.30 29 Aug 2026 12:08PM UTC 167
95.74
GitHub Action Run
31 run-4.0-gemfiles/rack_3_0.gemfile - 33251770064.31 29 Aug 2026 12:08PM UTC 167
95.74
GitHub Action Run
32 run-3.4-gemfiles/rails_8_1.gemfile - 33251770064.32 29 Aug 2026 12:09PM UTC 168
95.74
GitHub Action Run
Source Files on build 33251770064
  • Tree
  • List 168
  • Changed 2
  • Source Changed 2
  • Coverage Changed 2
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #33251770064
  • e02210dd on github
  • Prev Build on master (#33120993402)
  • Next Build on explicit-required-flag (#33251775659)
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