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

dblock / hashie
98%
master: 98%

Build:
Build:
LAST BUILD BRANCH: dblock/mash-required-keys
DEFAULT BRANCH: master
Repo Added 25 Aug 2026 09:54PM UTC
Token oKMollNwOqvAeCstuEtFPQv7QAgpru6rT regen
Build 14 Last
Files 78
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

LAST BUILD ON BRANCH dblock/mash-required-keys
branch: SELECT
CHANGE BRANCH
x
Sync Branches
  • No branch selected
  • dblock/coercion-mash-fix
  • dblock/coverage-100
  • dblock/coverage-matrix
  • dblock/coveralls-github-token
  • dblock/fix-dash-deep-transform-keys
  • dblock/ignore-required
  • dblock/kernel-coercion
  • dblock/mash-required-keys
  • dblock/strict-key-access
  • dblock/trash-self-translation-warning

26 Aug 2026 09:12PM UTC coverage: 98.404%. First build
33014299950

push

github

dblock
Add Hashie::Extensions::Mash::RequiredKeys

Addresses #453, which asks for a way to have required properties
(like Dash) on a Mash that still allows arbitrary, undeclared keys
to be assigned (unlike Dash, which only allows pre-declared
properties).

Adds a new opt-in mixin, Hashie::Extensions::Mash::RequiredKeys,
that lets you declare required_keys on a Mash subclass. Missing (or
explicitly nil) required keys raise an ArgumentError at construction
time, listing all missing keys. Required keys are inherited by
subclasses and can be extended further in a subclass without
affecting the superclass's list.

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

4254 of 4323 relevant lines covered (98.4%)

91.41 hits per line

Relevant lines Covered
Build:
Build:
4323 RELEVANT LINES 4254 COVERED LINES
91.41 HITS PER LINE
Source Files on dblock/coercion-mash-fix
  • Tree
  • List 78
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line

Recent builds

Builds Branch Commit Type Ran Committer Via Coverage
33014299950 dblock/mash-required-keys Add Hashie::Extensions::Mash::RequiredKeys Addresses #453, which asks for a way to have required properties (like Dash) on a Mash that still allows arbitrary, undeclared keys to be assigned (unlike Dash, which only allows pre-declared properties)... push 26 Aug 2026 09:13PM UTC dblock github
98.4
33013822341 dblock/fix-dash-deep-transform-keys Fix Dash#deep_transform_keys raising for required properties on Rails 7+ ActiveSupport 7's Hash#deep_transform_keys/deep_transform_keys! build up their result by calling self.class.new with no arguments, then filling in transformed keys one at a ... push 26 Aug 2026 09:07PM UTC dblock github
98.37
33013049327 dblock/trash-self-translation-warning Fix Trash/PropertyTranslation warning when :from matches property name of a different type property_translation.rb's self-transformation check used strict == to compare property_name and :from, so a symbol property translated from: a string of th... push 26 Aug 2026 08:58PM UTC dblock github
98.38
32909826209 dblock/coercion-mash-fix Fix Coercion#coerce_value not triggering for nested Hashes in a Mash Hashie::Mash's initializer and writers recursively convert nested Hash values into instances of self.class before Hashie::Extensions::Coercion gets a chance to inspect them. By ... push 25 Aug 2026 11:14PM UTC dblock github
98.39
32909296063 dblock/kernel-coercion Add Hashie::Extensions::KernelCoercion Extends Hashie::Extensions::Coercion to coerce core types (Integer, Float, Complex, Rational, String) using the stricter Kernel methods (e.g. Kernel#Integer) instead of the default, lenient conversion method... push 25 Aug 2026 11:07PM UTC dblock github
98.4
32908613082 dblock/ignore-required Add Hashie::Extensions::Dash::IgnoreRequired Silently ignores required property constraints on initialization and assignment, useful for building an object incrementally that will eventually match a Dash but is temporarily incomplete. Based on a... push 25 Aug 2026 10:58PM UTC dblock github
98.4
32906981267 dblock/strict-key-access Add Hashie::Extensions::Mash::StrictKeyAccess Raises a KeyError instead of returning nil when accessing an undefined key on a Mash, including keys of nested Mashes. Special suffixed accessors (?, !, _, =) continue to work as expected. Closes #60 push 25 Aug 2026 10:37PM UTC dblock github
98.4
32904798897 dblock/coverage-100 Push test coverage to 100% Add tests to cover previously untested branches across the codebase (Clash, Dash, Mash, Coercion, IndifferentAccess, Rash, Utils, RubyVersion, and various support/spec files). Fixes a real bug found along the way in Ha... push 25 Aug 2026 10:10PM UTC dblock github
100.0
32904578271 dblock/coveralls-github-token Report coverage to Coveralls on pull requests using GITHUB_TOKEN The Coverage workflow only triggered on: [push] and used coveralls_reborn with a COVERALLS_REPO_TOKEN secret, so it never ran on pull requests, and PRs from forks wouldn't have acce... push 25 Aug 2026 10:07PM UTC dblock github
98.38
32904446410 dblock/coveralls-github-token Report coverage from every test matrix job to Coveralls Only reports coverage from a single dedicated Coverage workflow running one Ruby version, which undercounts real coverage: a few lines are only executed on some Rubies in the test matrix (e.... push 25 Aug 2026 10:05PM UTC dblock github
98.38
See All Builds (14)

Badge your Repo: hashie

We detected this repo isn’t badged! Grab the embed code to the right, add it to your repo to show off your code coverage, and when the badge is live hit the refresh button to remove this message.

Could not find badge in README.

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

Refresh
  • Settings
  • Repo on GitHub
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