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

ruby-grape / grape / 35716732143
99%
master: 99%

Build:
Build:
LAST BUILD BRANCH: spec/compose-message-blank-step
DEFAULT BRANCH: master
Ran 22 Sep 2026 10:34AM UTC
Jobs 32
Files 171
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

22 Sep 2026 10:34AM UTC coverage: 98.991% (-0.04%) from 99.027%
35716732143

Pull #2980

github

ericproulx
Resolve error messages through a translator

Grape::Util::Translation called I18n directly, so every error message was
an I18n lookup and nothing else was possible. It now hands the lookup to
Grape.translator, and ships two that answer it.

Grape::Translator::I18n is the default and is today's code moved, not
changed: it resolves at request time, so the locale in force and an
application's own overrides both apply.

Grape::Translator::Catalog answers from one frozen table instead, built
once from Grape's own locale/en.yml -- read with YAML, so it needs no
I18n -- with whatever I18n has loaded merged over it, so overrides and
other locales are carried. Keys are flat and the interpolation
placeholders are rewritten into the form format takes, so a lookup is a
Hash read and a format. A 400 validation-error response measures 32.2 us
against 53.4 us, 1.66x faster.

What the catalog trades away is in the README: it is a snapshot, so a
locale loaded after it was built is not in it; the locale in force comes
from Grape.locale, which is fiber-local, rather than from I18n; and it
carries the scopes it was asked for, grape by default.

The two are held to each other by a spec that compares every message
Grape ships, with a value supplied for each placeholder, so the one
cannot drift from the other.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
Pull Request #2980: Resolve error messages through a translator

1488 of 1548 branches covered (96.12%)

Branch coverage included in aggregate %.

81 of 81 new or added lines in 5 files covered. (100.0%)

4399 of 4399 relevant lines covered (100.0%)

28430.37 hits per line

Jobs
ID Job ID Ran Files Coverage
1 run-3.4-gemfiles/rack_3_2.gemfile - 35716732143.1 22 Sep 2026 10:34AM UTC 170
97.85
GitHub Action Run
2 run-3.4-gemfiles/rails_8_0.gemfile - 35716732143.2 22 Sep 2026 10:34AM UTC 171
97.85
GitHub Action Run
3 run-4.0-gemfiles/grape_swagger.gemfile - 35716732143.3 22 Sep 2026 10:34AM UTC 169
52.88
GitHub Action Run
4 run-4.0-gemfiles/multi_xml_0_8.gemfile - 35716732143.4 22 Sep 2026 10:34AM UTC 169
45.43
GitHub Action Run
5 run-3.4-gemfiles/rails_8_1.gemfile - 35716732143.5 22 Sep 2026 10:35AM UTC 171
97.85
GitHub Action Run
6 run-4.0-Gemfile - 35716732143.6 22 Sep 2026 10:34AM UTC 170
97.83
GitHub Action Run
7 run-4.0-gemfiles/rack_3_0.gemfile - 35716732143.7 22 Sep 2026 10:34AM UTC 170
97.83
GitHub Action Run
8 run-3.3-gemfiles/rack_3_1.gemfile - 35716732143.8 22 Sep 2026 10:34AM UTC 170
97.83
GitHub Action Run
9 run-4.0-gemfiles/rails_8_0.gemfile - 35716732143.9 22 Sep 2026 10:35AM UTC 171
97.85
GitHub Action Run
10 run-4.0-gemfiles/multi_json_1_20.gemfile - 35716732143.10 22 Sep 2026 10:34AM UTC 169
45.7
GitHub Action Run
11 run-4.0-gemfiles/hashie.gemfile - 35716732143.11 22 Sep 2026 10:34AM UTC 169
59.46
GitHub Action Run
12 run-3.4-gemfiles/rack_3_1.gemfile - 35716732143.12 22 Sep 2026 10:34AM UTC 170
97.81
GitHub Action Run
13 run-4.0-gemfiles/rack_3_2.gemfile - 35716732143.13 22 Sep 2026 10:35AM UTC 170
97.83
GitHub Action Run
14 run-4.0-gemfiles/grape_entity.gemfile - 35716732143.14 22 Sep 2026 10:35AM UTC 169
48.42
GitHub Action Run
15 run-3.4-Gemfile - 35716732143.15 22 Sep 2026 10:35AM UTC 170
97.83
GitHub Action Run
16 run-4.0-gemfiles/rails_8_1.gemfile - 35716732143.16 22 Sep 2026 10:34AM UTC 171
97.85
GitHub Action Run
17 run-3.3-gemfiles/rack_3_2.gemfile - 35716732143.17 22 Sep 2026 10:35AM UTC 170
97.86
GitHub Action Run
18 run-4.0-gemfiles/rack_2_2.gemfile - 35716732143.18 22 Sep 2026 10:35AM UTC 170
97.81
GitHub Action Run
19 run-3.3-gemfiles/rails_7_2.gemfile - 35716732143.19 22 Sep 2026 10:34AM UTC 171
97.85
GitHub Action Run
20 run-3.3-gemfiles/rails_8_1.gemfile - 35716732143.20 22 Sep 2026 10:35AM UTC 171
97.85
GitHub Action Run
21 run-4.0-gemfiles/multi_json.gemfile - 35716732143.21 22 Sep 2026 10:35AM UTC 169
45.66
GitHub Action Run
22 run-4.0-gemfiles/rails_7_2.gemfile - 35716732143.22 22 Sep 2026 10:35AM UTC 171
97.83
GitHub Action Run
23 run-3.3-gemfiles/rails_8_0.gemfile - 35716732143.23 22 Sep 2026 10:34AM UTC 171
97.86
GitHub Action Run
24 run-3.4-gemfiles/rails_7_2.gemfile - 35716732143.24 22 Sep 2026 10:35AM UTC 171
97.85
GitHub Action Run
25 run-4.0-gemfiles/dry_validation.gemfile - 35716732143.25 22 Sep 2026 10:35AM UTC 169
55.5
GitHub Action Run
26 run-3.4-gemfiles/rack_2_2.gemfile - 35716732143.26 22 Sep 2026 10:34AM UTC 170
97.79
GitHub Action Run
27 run-3.3-gemfiles/rack_3_0.gemfile - 35716732143.27 22 Sep 2026 10:34AM UTC 170
97.85
GitHub Action Run
28 run-3.4-gemfiles/rack_3_0.gemfile - 35716732143.28 22 Sep 2026 10:34AM UTC 170
97.85
GitHub Action Run
29 run-3.3-gemfiles/rack_2_2.gemfile - 35716732143.29 22 Sep 2026 10:34AM UTC 170
97.81
GitHub Action Run
30 run-4.0-gemfiles/multi_xml.gemfile - 35716732143.30 22 Sep 2026 10:35AM UTC 169
45.39
GitHub Action Run
31 run-3.3-Gemfile - 35716732143.31 22 Sep 2026 10:34AM UTC 170
97.85
GitHub Action Run
32 run-4.0-gemfiles/rack_3_1.gemfile - 35716732143.32 22 Sep 2026 10:34AM UTC 170
97.83
GitHub Action Run
Source Files on build 35716732143
  • Tree
  • List 171
  • Changed 3
  • Source Changed 2
  • Coverage Changed 3
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #35716732143
  • Pull Request #2980
  • PR Base - master (#35537785984)
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