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

ruby-grape / grape / 30485820748 / 23
97%
master: 97%

Build:
DEFAULT BRANCH: master
Ran 29 Jul 2026 07:46PM UTC
Files 166
Run time 8s
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 Jul 2026 07:45PM UTC coverage: 95.546%. Remained the same
30485820748.23

push

github

web-flow
Document the definition-time rejection of uncoercible collection types (#2837)

#2817 made ArrayCoercer build its element coercer eagerly in the
constructor rather than memoizing it on first use, so that coercers --
shared across requests -- create no state at request time. A side effect
went unrecorded: an Array/Set whose element type Grape cannot coerce is
now rejected while the params block is evaluated, so an application that
boots today can fail to boot on 4.0 with

    ArgumentError: type Foo should support coercion via `[]`

Previously the element coercer was built on the first request that
supplied the parameter, so a declaration never exercised by a request --
a documentation-only type, which is what this breaks in practice -- never
raised at all; one that was exercised got the same ArgumentError swallowed
by the coercion validator into a generic 400 "is invalid".

The tightening is right: the non-collection form (type: Foo) has always
raised at definition time, and the collection form's leniency was an
accident of the lazy build rather than a supported behavior. But it is a
load-time break, so it needs an UPGRADING entry, which this adds -- with
the three fixes that actually work (a one-argument parse, coerce_with, or
dropping type: in favour of documentation:), and a warning that defining
self.[] only silences the load-time error while leaving the parameter
failing per request.

Also pin the behavior: nothing asserted it anywhere, so a future refactor
could revert it silently. The three "raises" examples fail against the
pre-#2817 lazy build and pass against the eager one.

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

1166 of 1282 branches covered (90.95%)

Branch coverage included in aggregate %.

3746 of 3859 relevant lines covered (97.07%)

1117.79 hits per line

Source Files on job run-3.3-gemfiles/rack_2_2.gemfile - 30485820748.23
  • Tree
  • List 166
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Build 30485820748
  • 55e2b1f4 on github
  • Prev Job for on master (#30485610217.1)
  • Next Job for on master (#30486032579.21)
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