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

ruby-grape / grape / 36251232855
100%
master: 100%

Build:
Build:
LAST BUILD BRANCH: fix/negotiated-format-fallback
DEFAULT BRANCH: master
Ran 26 Sep 2026 03:14PM UTC
Jobs 32
Files 166
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

26 Sep 2026 03:14PM UTC coverage: 99.983% (-0.02%) from 100.0%
36251232855

push

github

ericproulx
Validate a blank element of an optional Array block sent with others

An optional Array param given a block passed over every empty element,
even one sent next to real ones, so `[{"sku":"A"}, {}]` passed
`requires :sku` inside the block and `[{"sku":"A"}, null]` reached the
endpoint, where `params[:variants].map { |variant| variant[:sku] }`
raised. HashElementsValidator (#2957) likewise passed over every blank
element that is not a Hash.

The pass-over exists for two things, and both are kept: an optional
scope left out of an element of an Array further up (the iterator hands
its empty value to the validators), and an Array whose elements are all
blank, which ParamsScope#should_validate? passes over as if the param
were left out. An empty element sent with others is neither, and is now
validated like any other.

AttributesIterator now yields, with each value, whether it is an element
the request sent in the scope's own Array. It works that out once per
Array: an optional scope's Array whose elements are all empty is passed
over there, the rule should_validate? applies at the root, so a nested
`[{}, {}]` still passes. Base#validate! passes over an empty value only
when it is not such an element; #validate_elements! passes over only the
placeholder of a left-out scope, and an all-empty Array (reachable
through `oneof`, which runs a variant's validators directly).
HashElementsValidator passes over an Array whose elements are all blank
and otherwise rejects a blank element that is not a Hash.

DefaultValidator does not read the new flag, so where defaults are
filled in is unchanged.

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

1499 of 1500 branches covered (99.93%)

Branch coverage included in aggregate %.

20 of 20 new or added lines in 3 files covered. (100.0%)

4325 of 4325 relevant lines covered (100.0%)

29372.22 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-3.3-gemfiles/rack_2_2.gemfile - 36251232855.1 26 Sep 2026 03:14PM UTC 165
98.78
GitHub Action Run
2 run-3.4-gemfiles/rack_3_0.gemfile - 36251232855.2 26 Sep 2026 03:15PM UTC 165
98.8
GitHub Action Run
3 run-3.4-gemfiles/rack_2_2.gemfile - 36251232855.3 26 Sep 2026 03:15PM UTC 165
98.76
GitHub Action Run
4 run-4.0-gemfiles/rack_3_2.gemfile - 36251232855.4 26 Sep 2026 03:15PM UTC 165
98.8
GitHub Action Run
5 run-4.0-gemfiles/rack_3_0.gemfile - 36251232855.5 26 Sep 2026 03:14PM UTC 165
98.8
GitHub Action Run
6 run-3.3-gemfiles/rack_3_0.gemfile - 36251232855.6 26 Sep 2026 03:14PM UTC 165
98.81
GitHub Action Run
7 run-4.0-gemfiles/grape_swagger.gemfile - 36251232855.7 26 Sep 2026 03:15PM UTC 164
53.25
GitHub Action Run
8 run-4.0-gemfiles/dry_validation.gemfile - 36251232855.8 26 Sep 2026 03:14PM UTC 164
55.83
GitHub Action Run
9 run-3.4-gemfiles/rails_8_1.gemfile - 36251232855.9 26 Sep 2026 03:14PM UTC 166
98.8
GitHub Action Run
10 run-4.0-gemfiles/multi_json.gemfile - 36251232855.10 26 Sep 2026 03:15PM UTC 164
45.92
GitHub Action Run
11 run-3.3-gemfiles/rack_3_2.gemfile - 36251232855.11 26 Sep 2026 03:14PM UTC 165
98.81
GitHub Action Run
12 run-3.4-Gemfile - 36251232855.12 26 Sep 2026 03:15PM UTC 165
98.8
GitHub Action Run
13 run-4.0-gemfiles/multi_json_1_20.gemfile - 36251232855.13 26 Sep 2026 03:14PM UTC 164
45.95
GitHub Action Run
14 run-4.0-gemfiles/rails_8_1.gemfile - 36251232855.14 26 Sep 2026 03:15PM UTC 166
98.8
GitHub Action Run
15 run-4.0-gemfiles/rails_8_0.gemfile - 36251232855.15 26 Sep 2026 03:14PM UTC 166
98.8
GitHub Action Run
16 run-3.4-gemfiles/rails_7_2.gemfile - 36251232855.16 26 Sep 2026 03:14PM UTC 166
98.8
GitHub Action Run
17 run-3.4-gemfiles/rails_8_0.gemfile - 36251232855.17 26 Sep 2026 03:14PM UTC 166
98.8
GitHub Action Run
18 run-4.0-gemfiles/multi_xml_0_8.gemfile - 36251232855.18 26 Sep 2026 03:15PM UTC 164
45.64
GitHub Action Run
19 run-4.0-gemfiles/hashie.gemfile - 36251232855.19 26 Sep 2026 03:14PM UTC 164
59.9
GitHub Action Run
20 run-3.4-gemfiles/rack_3_1.gemfile - 36251232855.20 26 Sep 2026 03:14PM UTC 165
98.8
GitHub Action Run
21 run-4.0-gemfiles/rails_7_2.gemfile - 36251232855.21 26 Sep 2026 03:14PM UTC 166
98.8
GitHub Action Run
22 run-3.4-gemfiles/rack_3_2.gemfile - 36251232855.22 26 Sep 2026 03:14PM UTC 165
98.8
GitHub Action Run
23 run-3.3-gemfiles/rails_8_0.gemfile - 36251232855.23 26 Sep 2026 03:14PM UTC 166
98.81
GitHub Action Run
24 run-3.3-gemfiles/rails_8_1.gemfile - 36251232855.24 26 Sep 2026 03:15PM UTC 166
98.81
GitHub Action Run
25 run-4.0-gemfiles/rack_3_1.gemfile - 36251232855.25 26 Sep 2026 03:15PM UTC 165
98.8
GitHub Action Run
26 run-3.3-Gemfile - 36251232855.26 26 Sep 2026 03:14PM UTC 165
98.81
GitHub Action Run
27 run-3.3-gemfiles/rails_7_2.gemfile - 36251232855.27 26 Sep 2026 03:15PM UTC 166
98.81
GitHub Action Run
28 run-3.3-gemfiles/rack_3_1.gemfile - 36251232855.28 26 Sep 2026 03:14PM UTC 165
98.81
GitHub Action Run
29 run-4.0-gemfiles/multi_xml.gemfile - 36251232855.29 26 Sep 2026 03:14PM UTC 164
45.61
GitHub Action Run
30 run-4.0-gemfiles/grape_entity.gemfile - 36251232855.30 26 Sep 2026 03:14PM UTC 164
48.68
GitHub Action Run
31 run-4.0-Gemfile - 36251232855.31 26 Sep 2026 03:15PM UTC 165
98.8
GitHub Action Run
32 run-4.0-gemfiles/rack_2_2.gemfile - 36251232855.32 26 Sep 2026 03:14PM UTC 165
98.76
GitHub Action Run
Source Files on build 36251232855
  • Tree
  • List 166
  • Changed 4
  • Source Changed 3
  • Coverage Changed 4
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #36251232855
  • 686776ad on github
  • Prev Build on master (#36249622083)
  • Next Build on fix/array-blank-elements (#36251244556)
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