snaky_hash 2.0.5 → 2.0.7

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 470baea057cb725329d366a78e0f63b827ef9a8b696ada7c898c3eca3567dcb7
4
- data.tar.gz: 808d135faa416bff9f01c12dc8f73301d46789ac111e1205b2a5c6f3a10f3c1f
3
+ metadata.gz: 3d7ba970e956310051542f6433aeca0bc5c98ee6bc2a3e85ed71c5b10ddd2330
4
+ data.tar.gz: d26b882458ccc1860b98bebb9391f917c245812fbda4eee3e2941d2f487a8be9
5
5
  SHA512:
6
- metadata.gz: 657833d9641e7aff20780306515f3d936ac204726599ad5e03391936f93238bda469ed222b105fb0552936ef9a0ca711505275a7af507dee34d3609a92c58960
7
- data.tar.gz: 1dde13aa200f9c726eb7b30bbf22cb80686faaab76df52c4034eabfd3422343de5ae7891bea3136465e9cc9c8e573a676a9e9ed801f665fe1066cffb8d8e7cf7
6
+ metadata.gz: 6abac6e9dca6aae24b6362f4b2b0be36ded0c11f628911338ee21b5d8d962cf6ff7603b2dd586fb1f64c2f11dee34dd2a5f2074f1cbc5fafae9f859829ec3a47
7
+ data.tar.gz: f241d80a2a0ef0970cdfd37a522ac6e24bce5d3ced1167df919d1c705e9fd73fb7fcace1df2ca51bbeb39bdb5a80d67504e7e4919ff39617936dad73c54d1bb9
checksums.yaml.gz.sig CHANGED
Binary file
data/CHANGELOG.md CHANGED
@@ -28,11 +28,47 @@ Please file a bug if you notice a violation of semantic versioning.
28
28
 
29
29
  ### Fixed
30
30
 
31
+ ### Security
32
+
33
+ ## [2.0.7] - 2026-07-14
34
+
35
+ - TAG: [v2.0.7][2.0.7t]
36
+ - COVERAGE: 100.00% -- 133/133 lines in 7 files
37
+ - BRANCH COVERAGE: 100.00% -- 38/38 branches in 7 files
38
+ - 92.86% documented
39
+
40
+ ### Added
41
+
42
+ - Added support for JRuby 10.1 and TruffleRuby 34.0.
43
+
44
+ ### Changed
45
+
46
+ - Retemplated generated project metadata, support documentation, CI workflows,
47
+ binstubs, and development dependency floors with `kettle-jem` v7.0.0.
48
+
49
+ ### Fixed
50
+
51
+ - Corrected RubyGems homepage metadata to point at the gem documentation site.
52
+ - Corrected persisted Open Collective and repository topology metadata used by
53
+ future template runs.
54
+
55
+ - Package configured license files in gem release file lists.
56
+
57
+ - Removed stale local-path `version_gem` state from the main lockfile.
58
+
59
+ ## [2.0.6] - 2026-06-11
60
+
61
+ - TAG: [v2.0.6][2.0.6t]
62
+ - COVERAGE: 100.00% -- 133/133 lines in 7 files
63
+ - BRANCH COVERAGE: 100.00% -- 38/38 branches in 7 files
64
+ - 92.86% documented
65
+
66
+ ### Fixed
67
+
68
+ - Restored `docs/CNAME` so the generated documentation site keeps its custom domain.
31
69
  - Removed stale legacy CI workflows and duplicate extracted-stdlib gem
32
70
  declarations from generated Appraisal gemfiles.
33
71
 
34
- ### Security
35
-
36
72
  ## [2.0.5] - 2026-06-07
37
73
 
38
74
  - TAG: [v2.0.5][2.0.5t]
@@ -163,7 +199,11 @@ end
163
199
 
164
200
  - Initial release
165
201
 
166
- [Unreleased]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.5...HEAD
202
+ [Unreleased]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.7...HEAD
203
+ [2.0.7]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.6...v2.0.7
204
+ [2.0.7t]: https://github.com/ruby-oauth/snaky_hash/releases/tag/v2.0.7
205
+ [2.0.6]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.5...v2.0.6
206
+ [2.0.6t]: https://github.com/ruby-oauth/snaky_hash/releases/tag/v2.0.6
167
207
  [2.0.5]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.4...v2.0.5
168
208
  [2.0.5t]: https://github.com/ruby-oauth/snaky_hash/releases/tag/v2.0.5
169
209
  [2.0.4]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.3...v2.0.4
data/CONTRIBUTING.md CHANGED
@@ -109,14 +109,14 @@ Git diff driver setup
109
109
  - Git hosting forges generally ignore external diff drivers, so pull request views may still show raw textual diffs even when local `git diff` uses semantic drivers.
110
110
 
111
111
  ```console
112
- K_JEM_TEMPLATING=true bundle exec kettle-jem install
112
+ K_JEM_TEMPLATING=true kettle-jem install
113
113
  ```
114
114
 
115
115
  Troubleshooting Git diffs
116
116
  - Use `git diff --no-ext-diff` to compare against Git's built-in diff output.
117
117
  - Use `git diff --no-textconv` when a textconv projection obscures the raw file bytes you need to inspect.
118
118
  - If Git reports a missing `smorg-*` executable, rerun `bundle install` and the setup command above, then check `git config --local --get-regexp '^diff\.smorg-'`.
119
- - To remove managed local entries, run `K_JEM_TEMPLATING=true bundle exec kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
119
+ - To remove managed local entries, run `K_JEM_TEMPLATING=true kettle-jem install --undo`; remove global command registrations with `git config --global --unset-all diff.smorg-ruby.command`.
120
120
 
121
121
  For a quick starting point, this repository’s `mise.toml` defines the shared defaults, and `.env.local` can override them locally. Copy `.env.local.example` to `.env.local`, use `KEY=value` lines, and either activate `mise` in your shell or run commands through `mise exec -C /path/to/project -- ...`.
122
122
 
@@ -131,9 +131,12 @@ toolchain, and it may be higher than the gemspec runtime floor.
131
131
  They are created and updated with the commands:
132
132
 
133
133
  ```console
134
- bin/rake appraisal:update
134
+ bin/rake appraisal:generate
135
135
  ```
136
136
 
137
+ Use `bin/rake appraisal:update` when you intentionally need to resolve fresh
138
+ appraisal locks.
139
+
137
140
  If you need to reset all gemfiles/*.gemfile.lock files:
138
141
 
139
142
  ```console
data/FUNDING.md CHANGED
@@ -6,7 +6,7 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
6
6
 
7
7
  [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal]
8
8
 
9
- [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
9
+ [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
10
10
 
11
11
  [⛳liberapay-img]: https://img.shields.io/liberapay/goal/pboling.svg?logo=liberapay&color=a51611&style=flat
12
12
  [⛳liberapay]: https://liberapay.com/pboling/donate
@@ -16,12 +16,8 @@ Many paths lead to being a sponsor or a backer of this project. Are you on such
16
16
  [🖇osc-sponsors-i]: https://opencollective.com/ruby-oauth/sponsors/badge.svg?style=flat
17
17
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
18
18
  [🖇sponsor]: https://github.com/sponsors/pboling
19
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
20
- [🖇polar]: https://polar.sh/pboling
21
19
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
22
20
  [🖇kofi]: https://ko-fi.com/pboling
23
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
24
- [🖇patreon]: https://patreon.com/galtzo
25
21
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
26
22
  [🖇buyme]: https://www.buymeacoffee.com/pboling
27
23
  [🖇paypal-img]: https://img.shields.io/badge/donate-paypal-a51611.svg?style=flat&logo=paypal
data/MIT.md ADDED
@@ -0,0 +1,21 @@
1
+ The MIT License (MIT)
2
+
3
+ See [LICENSE.md](LICENSE.md) for the copyright notice.
4
+
5
+ Permission is hereby granted, free of charge, to any person obtaining a copy
6
+ of this software and associated documentation files (the "Software"), to deal
7
+ in the Software without restriction, including without limitation the rights
8
+ to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9
+ copies of the Software, and to permit persons to whom the Software is
10
+ furnished to do so, subject to the following conditions:
11
+
12
+ The above copyright notice and this permission notice shall be included in
13
+ all copies or substantial portions of the Software.
14
+
15
+ THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16
+ IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17
+ FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18
+ AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19
+ LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20
+ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
21
+ THE SOFTWARE.
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  <a href="https://github.com/ruby-oauth"><img alt="ruby-oauth Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/ruby-oauth/avatar-128px.svg" width="14%" align="right"/></a>
2
2
 
3
- # 🐍 SnakyHash
3
+ # 🔮 SnakyHash
4
4
 
5
5
  [![Version][👽versioni]][👽version] [![GitHub tag (latest SemVer)][⛳️tag-img]][⛳️tag] [![License: MIT][📄license-img]][📄license] [![Downloads Rank][👽dl-ranki]][👽dl-rank] [![CodeCov Test Coverage][🏀codecovi]][🏀codecov] [![Coveralls Test Coverage][🏀coveralls-img]][🏀coveralls] [![QLTY Test Coverage][🏀qlty-covi]][🏀qlty-cov] [![QLTY Maintainability][🏀qlty-mnti]][🏀qlty-mnt] [![CI Heads][🚎3-hd-wfi]][🚎3-hd-wf] [![CI Runtime Dependencies @ HEAD][🚎12-crh-wfi]][🚎12-crh-wf] [![CI Current][🚎11-c-wfi]][🚎11-c-wf] [![CI Truffle Ruby][🚎9-t-wfi]][🚎9-t-wf] [![CI JRuby][🚎10-j-wfi]][🚎10-j-wf] [![Deps Locked][🚎13-🔒️-wfi]][🚎13-🔒️-wf] [![Deps Unlocked][🚎14-🔓️-wfi]][🚎14-🔓️-wf] [![CI Test Coverage][🚎2-cov-wfi]][🚎2-cov-wf] [![CI Style][🚎5-st-wfi]][🚎5-st-wf] [![Apache SkyWalking Eyes License Compatibility Check][🚎15-🪪-wfi]][🚎15-🪪-wf]
6
6
 
@@ -10,9 +10,9 @@
10
10
 
11
11
  `if ci_badges.map(&:color).all? { it == "green"}` 👇️ send money so I can do more of this. FLOSS maintenance is now my full-time job.
12
12
 
13
- [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
13
+ [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate at ko-fi.com][🖇kofi-img]][🖇kofi]
14
14
 
15
- <details>
15
+ <details markdown="1">
16
16
  <summary>👣 How will this project approach the September 2025 hostile takeover of RubyGems? 🚑️</summary>
17
17
 
18
18
  I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-takeover-of-rubygems-my-thoughts-5hlo).
@@ -25,9 +25,9 @@ I've summarized my thoughts in [this blog post](https://dev.to/galtzo/hostile-ta
25
25
 
26
26
  | Tokens to Remember | [![Gem name][⛳️name-img]][⛳️gem-name] [![Gem namespace][⛳️namespace-img]][⛳️gem-namespace] |
27
27
  |-------------------------|---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
28
- | Works with JRuby | [![JRuby 9.2 Compat][💎jruby-9.2i]][🚎jruby-9.2-wf] [![JRuby 9.3 Compat][💎jruby-9.3i]][🚎jruby-9.3-wf] <br/> [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎jruby-9.4-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
29
- | Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.0 Compat][💎truby-23.0i]][🚎truby-23.0-wf] [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎truby-23.1-wf] <br/> [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf]|
30
- | Works with MRI Ruby 4 | [![Ruby 4.0 Compat][💎ruby-4.0i]][🚎11-c-wf] [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
28
+ | Works with JRuby | [![JRuby 9.2 Compat][💎jruby-9.2i]][🚎jruby-9.2-wf] [![JRuby 9.3 Compat][💎jruby-9.3i]][🚎jruby-9.3-wf] <br/> [![JRuby 9.4 Compat][💎jruby-9.4i]][🚎jruby-9.4-wf] [![JRuby 10.0 Compat][💎jruby-10.0i]][🚎jruby-10.0-wf] [![JRuby current Compat][💎jruby-c-i]][🚎10-j-wf] [![JRuby HEAD Compat][💎jruby-headi]][🚎3-hd-wf]|
29
+ | Works with Truffle Ruby | [![Truffle Ruby 22.3 Compat][💎truby-22.3i]][🚎truby-22.3-wf] [![Truffle Ruby 23.0 Compat][💎truby-23.0i]][🚎truby-23.0-wf] [![Truffle Ruby 23.1 Compat][💎truby-23.1i]][🚎truby-23.1-wf] <br/> [![Truffle Ruby 24.2 Compat][💎truby-24.2i]][🚎truby-24.2-wf] [![Truffle Ruby 25.0 Compat][💎truby-25.0i]][🚎truby-25.0-wf] [![Truffle Ruby 33.0 Compat][💎truby-33.0i]][🚎truby-33.0-wf] [![Truffle Ruby current Compat][💎truby-c-i]][🚎9-t-wf] [![Truffle Ruby HEAD Compat][💎truby-headi]][🚎3-hd-wf]|
30
+ | Works with MRI Ruby 4 | [![Ruby current Compat][💎ruby-c-i]][🚎11-c-wf] [![Ruby HEAD Compat][💎ruby-headi]][🚎3-hd-wf]|
31
31
  | Works with MRI Ruby 3 | [![Ruby 3.0 Compat][💎ruby-3.0i]][🚎ruby-3.0-wf] [![Ruby 3.1 Compat][💎ruby-3.1i]][🚎ruby-3.1-wf] [![Ruby 3.2 Compat][💎ruby-3.2i]][🚎ruby-3.2-wf] [![Ruby 3.3 Compat][💎ruby-3.3i]][🚎ruby-3.3-wf] [![Ruby 3.4 Compat][💎ruby-3.4i]][🚎ruby-3.4-wf]|
32
32
  | Works with MRI Ruby 2 | ![Ruby 2.2 Compat][💎ruby-2.2i] ![Ruby 2.3 Compat][💎ruby-2.3i] <br/> [![Ruby 2.4 Compat][💎ruby-2.4i]][🚎ruby-2.4-wf] [![Ruby 2.5 Compat][💎ruby-2.5i]][🚎ruby-2.5-wf] [![Ruby 2.6 Compat][💎ruby-2.6i]][🚎ruby-2.6-wf] [![Ruby 2.7 Compat][💎ruby-2.7i]][🚎ruby-2.7-wf]|
33
33
  | Support & Community | [![Join Me on Daily.dev's RubyFriends][✉️ruby-friends-img]][✉️ruby-friends] [![Live Chat on Discord][✉️discord-invite-img-ftb]][✉️discord-invite] [![Get help from me on Upwork][👨🏼‍🏫expsup-upwork-img]][👨🏼‍🏫expsup-upwork] [![Get help from me on Codementor][👨🏼‍🏫expsup-codementor-img]][👨🏼‍🏫expsup-codementor] |
@@ -46,9 +46,25 @@ This test floor is configured by `ruby.test_minimum` in `.kettle-jem.yml` and
46
46
  may be higher than the gem's runtime compatibility floor when legacy Rubies are
47
47
  not practical for the current toolchain.
48
48
 
49
- | 🚚 _Amazing_ test matrix was brought to you by | 🔎 appraisal2 🔎 and the color 💚 green 💚 |
50
- |------------------------------------------------|--------------------------------------------------------|
51
- | 👟 Check it out! | [github.com/appraisal-rb/appraisal2][💎appraisal2] ✨ |
49
+ <a href="https://github.com/kettle-dev"><img alt="kettle-dev Logo by Aboling0, CC BY-SA 4.0" src="https://logos.galtzo.com/assets/images/kettle-dev/avatar-128px.svg" width="14%" align="right"/></a>
50
+
51
+ The _amazing_ test matrix is powered by the kettle-dev stack.
52
+
53
+ <details markdown="1">
54
+ <summary>How kettle-dev manages complexity in tests</summary>
55
+
56
+ | Gem | Source | Role | Daily download rank |
57
+ |-----|--------|------|---------------------|
58
+ | [appraisal2](https://bestgems.org/gems/appraisal2) | [GitHub](https://github.com/appraisal-rb/appraisal2) | multi-dependency Appraisal matrix generation | [![Daily download rank for appraisal2](https://img.shields.io/gem/rd/appraisal2.svg?style=flat-square)](https://bestgems.org/gems/appraisal2) |
59
+ | [appraisal2-rubocop](https://bestgems.org/gems/appraisal2-rubocop) | [GitHub](https://github.com/appraisal-rb/appraisal2-rubocop) | RuboCop Appraisal generator integration | [![Daily download rank for appraisal2-rubocop](https://img.shields.io/gem/rd/appraisal2-rubocop.svg?style=flat-square)](https://bestgems.org/gems/appraisal2-rubocop) |
60
+ | [kettle-dev](https://bestgems.org/gems/kettle-dev) | [GitHub](https://github.com/kettle-dev/kettle-dev) | development, release, and CI workflow tooling | [![Daily download rank for kettle-dev](https://img.shields.io/gem/rd/kettle-dev.svg?style=flat-square)](https://bestgems.org/gems/kettle-dev) |
61
+ | [kettle-jem](https://bestgems.org/gems/kettle-jem) | [GitHub](https://github.com/kettle-dev/kettle-jem) | Appraisals & CI workflow templates | [![Daily download rank for kettle-jem](https://img.shields.io/gem/rd/kettle-jem.svg?style=flat-square)](https://bestgems.org/gems/kettle-jem) |
62
+ | [kettle-soup-cover](https://bestgems.org/gems/kettle-soup-cover) | [GitHub](https://github.com/kettle-dev/kettle-soup-cover) | SimpleCov coverage policy and reporting | [![Daily download rank for kettle-soup-cover](https://img.shields.io/gem/rd/kettle-soup-cover.svg?style=flat-square)](https://bestgems.org/gems/kettle-soup-cover) |
63
+ | [kettle-test](https://bestgems.org/gems/kettle-test) | [GitHub](https://github.com/kettle-dev/kettle-test) | standard test runner and coverage harness | [![Daily download rank for kettle-test](https://img.shields.io/gem/rd/kettle-test.svg?style=flat-square)](https://bestgems.org/gems/kettle-test) |
64
+ | [rubocop-lts](https://bestgems.org/gems/rubocop-lts) | [GitHub](https://github.com/rubocop-lts/rubocop-lts) | Ruby-version-aware linting | [![Daily download rank for rubocop-lts](https://img.shields.io/gem/rd/rubocop-lts.svg?style=flat-square)](https://bestgems.org/gems/rubocop-lts) |
65
+ | [turbo_tests2](https://bestgems.org/gems/turbo_tests2) | [GitHub](https://github.com/galtzo-floss/turbo_tests2) | parallel test execution | [![Daily download rank for turbo_tests2](https://img.shields.io/gem/rd/turbo_tests2.svg?style=flat-square)](https://bestgems.org/gems/turbo_tests2) |
66
+
67
+ </details>
52
68
 
53
69
  ### Federated DVCS
54
70
 
@@ -133,7 +149,7 @@ are left as-is.
133
149
  class MySerializedSnakedHash < Hashie::Mash
134
150
  include SnakyHash::Snake.new(
135
151
  key_type: :symbol, # default :string
136
- serializer: true, # default: false
152
+ serializer: true # default: false
137
153
  )
138
154
  end
139
155
 
@@ -182,7 +198,7 @@ Let's say I want to really smash up my hash and make it more food-like.
182
198
  class MyExtSnakedHash < Hashie::Mash
183
199
  include SnakyHash::Snake.new(
184
200
  key_type: :symbol, # default :string
185
- serializer: true, # default: false
201
+ serializer: true # default: false
186
202
  )
187
203
  end
188
204
 
@@ -305,9 +321,13 @@ NOTE: [kettle-readme-backers][kettle-readme-backers] updates this list every day
305
321
 
306
322
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:START -->
307
323
  No sponsors yet. Be the first!
324
+
325
+ ### Open Collective for Donors
326
+
327
+ [Bill Woika](https://opencollective.com/bill-woika) [Philipp Ebneter](https://opencollective.com/guest-e77282f7) [Grigoriy](https://opencollective.com/guest-c93e0c48)
308
328
  <!-- OPENCOLLECTIVE-ORGANIZATIONS:END -->
309
329
 
310
- [kettle-readme-backers]: https://github.com/ruby-oauth/snaky_hash/blob/main/exe/kettle-readme-backers
330
+ [kettle-readme-backers]: https://github.com/ruby-oauth/snaky_hash/blob/main/bin/kettle-readme-backers
311
331
 
312
332
  ### Another way to support open-source
313
333
 
@@ -319,7 +339,7 @@ I’m developing a new library, [floss_funding][🖇floss-funding-gem], designed
319
339
 
320
340
  **[Floss-Funding.dev][🖇floss-funding.dev]: 👉️ No network calls. 👉️ No tracking. 👉️ No oversight. 👉️ Minimal crypto hashing. 💡 Easily disabled nags**
321
341
 
322
- [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate on Polar][🖇polar-img]][🖇polar] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi] [![Donate to my FLOSS efforts using Patreon][🖇patreon-img]][🖇patreon]
342
+ [![OpenCollective Backers][🖇osc-backers-i]][🖇osc-backers] [![OpenCollective Sponsors][🖇osc-sponsors-i]][🖇osc-sponsors] [![Sponsor Me on Github][🖇sponsor-img]][🖇sponsor] [![Liberapay Goal Progress][⛳liberapay-img]][⛳liberapay] [![Donate on PayPal][🖇paypal-img]][🖇paypal] [![Buy me a coffee][🖇buyme-small-img]][🖇buyme] [![Donate to my FLOSS efforts at ko-fi.com][🖇kofi-img]][🖇kofi]
323
343
 
324
344
  ## 🔐 Security
325
345
 
@@ -365,7 +385,7 @@ Made with [contributors-img][🖐contrib-rocks].
365
385
 
366
386
  Also see GitLab Contributors: [https://gitlab.com/ruby-oauth/snaky_hash/-/graphs/main][🚎contributors-gl]
367
387
 
368
- <details>
388
+ <details markdown="1">
369
389
  <summary>⭐️ Star History</summary>
370
390
 
371
391
  <a href="https://star-history.com/ruby-oauth/snaky_hash&Date">
@@ -460,12 +480,8 @@ Thanks for RTFM. ☺️
460
480
  [🖇sponsor-img]: https://img.shields.io/badge/Sponsor_Me!-pboling.svg?style=social&logo=github
461
481
  [🖇sponsor-bottom-img]: https://img.shields.io/badge/Sponsor_Me!-pboling-blue?style=for-the-badge&logo=github
462
482
  [🖇sponsor]: https://github.com/sponsors/pboling
463
- [🖇polar-img]: https://img.shields.io/badge/polar-donate-a51611.svg?style=flat
464
- [🖇polar]: https://polar.sh/pboling
465
483
  [🖇kofi-img]: https://img.shields.io/badge/ko--fi-%E2%9C%93-a51611.svg?style=flat
466
484
  [🖇kofi]: https://ko-fi.com/pboling
467
- [🖇patreon-img]: https://img.shields.io/badge/patreon-donate-a51611.svg?style=flat
468
- [🖇patreon]: https://patreon.com/galtzo
469
485
  [🖇buyme-small-img]: https://img.shields.io/badge/buy_me_a_coffee-%E2%9C%93-a51611.svg?style=flat
470
486
  [🖇buyme-img]: https://img.buymeacoffee.com/button-api/?text=Buy%20me%20a%20latte&emoji=&slug=pboling&button_colour=FFDD00&font_colour=000000&font_family=Cookie&outline_colour=000000&coffee_colour=ffffff
471
487
  [🖇buyme]: https://www.buymeacoffee.com/pboling
@@ -555,11 +571,13 @@ Thanks for RTFM. ☺️
555
571
  [🚎jruby-9.2-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/jruby-9.2.yml
556
572
  [🚎jruby-9.3-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/jruby-9.3.yml
557
573
  [🚎jruby-9.4-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/jruby-9.4.yml
574
+ [🚎jruby-10.0-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/jruby-10.0.yml
558
575
  [🚎truby-22.3-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/truffleruby-22.3.yml
559
576
  [🚎truby-23.0-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/truffleruby-23.0.yml
560
577
  [🚎truby-23.1-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/truffleruby-23.1.yml
561
578
  [🚎truby-24.2-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/truffleruby-24.2.yml
562
579
  [🚎truby-25.0-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/truffleruby-25.0.yml
580
+ [🚎truby-33.0-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/truffleruby-33.0.yml
563
581
  [🚎2-cov-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/coverage.yml
564
582
  [🚎2-cov-wfi]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/coverage.yml/badge.svg
565
583
  [🚎3-hd-wf]: https://github.com/ruby-oauth/snaky_hash/actions/workflows/heads.yml
@@ -591,7 +609,6 @@ Thanks for RTFM. ☺️
591
609
  [💎ruby-3.2i]: https://img.shields.io/badge/Ruby-3.2-CC342D?style=for-the-badge&logo=ruby&logoColor=white
592
610
  [💎ruby-3.3i]: https://img.shields.io/badge/Ruby-3.3-CC342D?style=for-the-badge&logo=ruby&logoColor=white
593
611
  [💎ruby-3.4i]: https://img.shields.io/badge/Ruby-3.4-CC342D?style=for-the-badge&logo=ruby&logoColor=white
594
- [💎ruby-4.0i]: https://img.shields.io/badge/Ruby-4.0-CC342D?style=for-the-badge&logo=ruby&logoColor=white
595
612
  [💎ruby-c-i]: https://img.shields.io/badge/Ruby-current-CC342D?style=for-the-badge&logo=ruby&logoColor=green
596
613
  [💎ruby-headi]: https://img.shields.io/badge/Ruby-HEAD-CC342D?style=for-the-badge&logo=ruby&logoColor=blue
597
614
  [💎truby-22.3i]: https://img.shields.io/badge/Truffle_Ruby-22.3-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
@@ -599,10 +616,13 @@ Thanks for RTFM. ☺️
599
616
  [💎truby-23.1i]: https://img.shields.io/badge/Truffle_Ruby-23.1-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
600
617
  [💎truby-24.2i]: https://img.shields.io/badge/Truffle_Ruby-24.2-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
601
618
  [💎truby-25.0i]: https://img.shields.io/badge/Truffle_Ruby-25.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
619
+ [💎truby-33.0i]: https://img.shields.io/badge/Truffle_Ruby-33.0-34BCB1?style=for-the-badge&logo=ruby&logoColor=pink
602
620
  [💎truby-c-i]: https://img.shields.io/badge/Truffle_Ruby-current-34BCB1?style=for-the-badge&logo=ruby&logoColor=green
621
+ [💎truby-headi]: https://img.shields.io/badge/Truffle_Ruby-HEAD-34BCB1?style=for-the-badge&logo=ruby&logoColor=blue
603
622
  [💎jruby-9.2i]: https://img.shields.io/badge/JRuby-9.2-FBE742?style=for-the-badge&logo=ruby&logoColor=red
604
623
  [💎jruby-9.3i]: https://img.shields.io/badge/JRuby-9.3-FBE742?style=for-the-badge&logo=ruby&logoColor=red
605
624
  [💎jruby-9.4i]: https://img.shields.io/badge/JRuby-9.4-FBE742?style=for-the-badge&logo=ruby&logoColor=red
625
+ [💎jruby-10.0i]: https://img.shields.io/badge/JRuby-10.0-FBE742?style=for-the-badge&logo=ruby&logoColor=red
606
626
  [💎jruby-c-i]: https://img.shields.io/badge/JRuby-current-FBE742?style=for-the-badge&logo=ruby&logoColor=green
607
627
  [💎jruby-headi]: https://img.shields.io/badge/JRuby-HEAD-FBE742?style=for-the-badge&logo=ruby&logoColor=blue
608
628
  [🤝gh-issues]: https://github.com/ruby-oauth/snaky_hash/issues
@@ -639,7 +659,7 @@ Thanks for RTFM. ☺️
639
659
  [📄license-ref]: MIT.md
640
660
  [📄license-img]: https://img.shields.io/badge/License-MIT-259D6C.svg
641
661
  [📄license-compat]: https://www.apache.org/legal/resolved.html#category-a
642
- [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-✓-259D6C.svg?style=flat&logo=Apache
662
+ [📄license-compat-img]: https://img.shields.io/badge/Apache_Compatible:_Category_A-%E2%9C%93-259D6C.svg?style=flat&logo=Apache
643
663
 
644
664
  [📄ilo-declaration]: https://www.ilo.org/declaration/lang--en/index.htm
645
665
  [📄ilo-declaration-img]: https://img.shields.io/badge/ILO_Fundamental_Principles-✓-259D6C.svg?style=flat
@@ -657,9 +677,9 @@ Thanks for RTFM. ☺️
657
677
  | Field | Value |
658
678
  |---|---|
659
679
  | Package | snaky_hash |
660
- | Description | 🐍 A Hashie::Mash joint to make #snakelife better |
680
+ | Description | 🔮 A Hashie::Mash joint to make #snakelife better |
661
681
  | Homepage | https://github.com/ruby-oauth/snaky_hash |
662
- | Source | https://github.com/ruby-oauth/snaky_hash/tree/v2.0.4 |
682
+ | Source | https://github.com/ruby-oauth/snaky_hash |
663
683
  | License | `MIT` |
664
- | Funding | https://github.com/sponsors/pboling, https://issuehunt.io/u/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/ruby-oauth, https://patreon.com/galtzo, https://polar.sh/pboling, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/snaky_hash, https://www.buymeacoffee.com/pboling |
684
+ | Funding | https://github.com/sponsors/pboling, https://ko-fi.com/pboling, https://liberapay.com/pboling/donate, https://opencollective.com/ruby-oauth, https://thanks.dev/u/gh/pboling, https://tidelift.com/funding/github/rubygems/snaky_hash, https://www.buymeacoffee.com/pboling |
665
685
  <!-- kettle-jem:metadata:end -->
@@ -22,12 +22,12 @@ module SnakyHash
22
22
  extended_module = Modulizer.to_extended_mod
23
23
  base.extend(extended_module)
24
24
  base.include(ConvenienceInstanceMethods)
25
- # :nocov:
25
+ # simplecov:disable
26
26
  # This will be run in CI on Ruby 2.3, but we only collect coverage from current Ruby
27
27
  unless base.method_defined?(:transform_values)
28
28
  base.include(BackportedInstanceMethods)
29
29
  end
30
- # :nocov:
30
+ # simplecov:enable
31
31
  end
32
32
  end
33
33
 
@@ -87,7 +87,7 @@ module SnakyHash
87
87
 
88
88
  # Provides backported methods for older Ruby versions
89
89
  module BackportedInstanceMethods
90
- # :nocov:
90
+ # simplecov:disable
91
91
  # Transforms values of a hash using the given block
92
92
  #
93
93
  # @yield [Object] block to transform each value
@@ -105,7 +105,7 @@ module SnakyHash
105
105
  end
106
106
  result
107
107
  end
108
- # :nocov:
108
+ # simplecov:enable
109
109
  end
110
110
 
111
111
  # Provides convenient instance methods for serialization
@@ -189,11 +189,11 @@ module SnakyHash
189
189
  if Gem::Version.new(RUBY_VERSION) >= Gem::Version.new("2.7")
190
190
  res
191
191
  else
192
- # :nocov:
192
+ # simplecov:disable
193
193
  # In Ruby <= 2.6 Hash#transform_values returned a new vanilla Hash,
194
194
  # rather than a hash of the class being transformed.
195
195
  self[res]
196
- # :nocov:
196
+ # simplecov:enable
197
197
  end
198
198
  end
199
199
 
@@ -56,7 +56,7 @@ module SnakyHash
56
56
  def to_mod(key_type)
57
57
  Module.new do
58
58
  case key_type
59
- when :string then
59
+ when :string
60
60
  # Converts a key to a string if it is symbolizable, after underscoring
61
61
  #
62
62
  # @note checks for to_sym instead of to_s, because nearly everything responds_to?(:to_s)
@@ -67,7 +67,7 @@ module SnakyHash
67
67
  # @param key [Object] the key to convert
68
68
  # @return [String, Object] the converted key or original if not convertible
69
69
  define_method(:convert_key) { |key| key.respond_to?(:to_sym) ? underscore_string(key.to_s) : key }
70
- when :symbol then
70
+ when :symbol
71
71
  # Converts a key to a symbol if possible, after underscoring
72
72
  #
73
73
  # @param key [Object] the key to convert
@@ -2,7 +2,7 @@
2
2
 
3
3
  module SnakyHash
4
4
  module Version
5
- VERSION = "2.0.5"
5
+ VERSION = "2.0.7"
6
6
  end
7
7
  VERSION = Version::VERSION # Traditional Constant Location
8
8
  end
data/sig/snaky_hash.rbs CHANGED
@@ -1,4 +1,3 @@
1
1
  module SnakyHash
2
- VERSION: String
3
2
  # See the writing guide of rbs: https://github.com/ruby/rbs#guides
4
3
  end
data.tar.gz.sig CHANGED
Binary file
metadata CHANGED
@@ -1,10 +1,10 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snaky_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.0.5
4
+ version: 2.0.7
5
5
  platform: ruby
6
6
  authors:
7
- - Peter Boling
7
+ - Peter H. Boling
8
8
  bindir: exe
9
9
  cert_chain:
10
10
  - |
@@ -61,42 +61,42 @@ dependencies:
61
61
  name: version_gem
62
62
  requirement: !ruby/object:Gem::Requirement
63
63
  requirements:
64
- - - ">="
64
+ - - "~>"
65
65
  - !ruby/object:Gem::Version
66
- version: 1.1.8
67
- - - "<"
66
+ version: '1.1'
67
+ - - ">="
68
68
  - !ruby/object:Gem::Version
69
- version: '3'
69
+ version: 1.1.14
70
70
  type: :runtime
71
71
  prerelease: false
72
72
  version_requirements: !ruby/object:Gem::Requirement
73
73
  requirements:
74
- - - ">="
74
+ - - "~>"
75
75
  - !ruby/object:Gem::Version
76
- version: 1.1.8
77
- - - "<"
76
+ version: '1.1'
77
+ - - ">="
78
78
  - !ruby/object:Gem::Version
79
- version: '3'
79
+ version: 1.1.14
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: kettle-dev
82
82
  requirement: !ruby/object:Gem::Requirement
83
83
  requirements:
84
84
  - - "~>"
85
85
  - !ruby/object:Gem::Version
86
- version: '2.1'
86
+ version: '2.3'
87
87
  - - ">="
88
88
  - !ruby/object:Gem::Version
89
- version: 2.1.1
89
+ version: 2.3.3
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
94
  - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: '2.1'
96
+ version: '2.3'
97
97
  - - ">="
98
98
  - !ruby/object:Gem::Version
99
- version: 2.1.1
99
+ version: 2.3.3
100
100
  - !ruby/object:Gem::Dependency
101
101
  name: bundler-audit
102
102
  requirement: !ruby/object:Gem::Requirement
@@ -154,7 +154,7 @@ dependencies:
154
154
  version: '3.1'
155
155
  - - ">="
156
156
  - !ruby/object:Gem::Version
157
- version: 3.1.1
157
+ version: 3.1.4
158
158
  type: :development
159
159
  prerelease: false
160
160
  version_requirements: !ruby/object:Gem::Requirement
@@ -164,7 +164,7 @@ dependencies:
164
164
  version: '3.1'
165
165
  - - ">="
166
166
  - !ruby/object:Gem::Version
167
- version: 3.1.1
167
+ version: 3.1.4
168
168
  - !ruby/object:Gem::Dependency
169
169
  name: kettle-test
170
170
  requirement: !ruby/object:Gem::Requirement
@@ -174,7 +174,7 @@ dependencies:
174
174
  version: '2.0'
175
175
  - - ">="
176
176
  - !ruby/object:Gem::Version
177
- version: 2.0.3
177
+ version: 2.0.10
178
178
  type: :development
179
179
  prerelease: false
180
180
  version_requirements: !ruby/object:Gem::Requirement
@@ -184,7 +184,7 @@ dependencies:
184
184
  version: '2.0'
185
185
  - - ">="
186
186
  - !ruby/object:Gem::Version
187
- version: 2.0.3
187
+ version: 2.0.10
188
188
  - !ruby/object:Gem::Dependency
189
189
  name: turbo_tests2
190
190
  requirement: !ruby/object:Gem::Requirement
@@ -194,7 +194,7 @@ dependencies:
194
194
  version: '3.1'
195
195
  - - ">="
196
196
  - !ruby/object:Gem::Version
197
- version: 3.1.1
197
+ version: 3.1.7
198
198
  type: :development
199
199
  prerelease: false
200
200
  version_requirements: !ruby/object:Gem::Requirement
@@ -204,7 +204,7 @@ dependencies:
204
204
  version: '3.1'
205
205
  - - ">="
206
206
  - !ruby/object:Gem::Version
207
- version: 3.1.1
207
+ version: 3.1.7
208
208
  - !ruby/object:Gem::Dependency
209
209
  name: ruby-progressbar
210
210
  requirement: !ruby/object:Gem::Requirement
@@ -228,7 +228,7 @@ dependencies:
228
228
  version: '1.0'
229
229
  - - ">="
230
230
  - !ruby/object:Gem::Version
231
- version: 1.0.3
231
+ version: 1.0.6
232
232
  type: :development
233
233
  prerelease: false
234
234
  version_requirements: !ruby/object:Gem::Requirement
@@ -238,7 +238,7 @@ dependencies:
238
238
  version: '1.0'
239
239
  - - ">="
240
240
  - !ruby/object:Gem::Version
241
- version: 1.0.3
241
+ version: 1.0.6
242
242
  - !ruby/object:Gem::Dependency
243
243
  name: gitmoji-regex
244
244
  requirement: !ruby/object:Gem::Requirement
@@ -248,7 +248,7 @@ dependencies:
248
248
  version: '2.0'
249
249
  - - ">="
250
250
  - !ruby/object:Gem::Version
251
- version: 2.0.1
251
+ version: 2.0.4
252
252
  type: :development
253
253
  prerelease: false
254
254
  version_requirements: !ruby/object:Gem::Requirement
@@ -258,7 +258,7 @@ dependencies:
258
258
  version: '2.0'
259
259
  - - ">="
260
260
  - !ruby/object:Gem::Version
261
- version: 2.0.1
261
+ version: 2.0.4
262
262
  - !ruby/object:Gem::Dependency
263
263
  name: backports
264
264
  requirement: !ruby/object:Gem::Requirement
@@ -279,10 +279,9 @@ dependencies:
279
279
  - - ">="
280
280
  - !ruby/object:Gem::Version
281
281
  version: 3.25.1
282
- description: "\U0001F40D A Hashie::Mash joint to make #snakelife better"
282
+ description: "\U0001F52E A Hashie::Mash joint to make #snakelife better"
283
283
  email:
284
284
  - floss@galtzo.com
285
- - oauth-ruby@googlegroups.com
286
285
  executables: []
287
286
  extensions: []
288
287
  extra_rdoc_files:
@@ -302,6 +301,7 @@ files:
302
301
  - CONTRIBUTING.md
303
302
  - FUNDING.md
304
303
  - LICENSE.md
304
+ - MIT.md
305
305
  - README.md
306
306
  - RUBOCOP.md
307
307
  - SECURITY.md
@@ -320,10 +320,10 @@ licenses:
320
320
  - MIT
321
321
  metadata:
322
322
  homepage_uri: https://snaky-hash.galtzo.com
323
- source_code_uri: https://github.com/ruby-oauth/snaky_hash/tree/v2.0.5
324
- changelog_uri: https://github.com/ruby-oauth/snaky_hash/blob/v2.0.5/CHANGELOG.md
323
+ source_code_uri: https://github.com/ruby-oauth/snaky_hash/tree/v2.0.7
324
+ changelog_uri: https://github.com/ruby-oauth/snaky_hash/blob/v2.0.7/CHANGELOG.md
325
325
  bug_tracker_uri: https://github.com/ruby-oauth/snaky_hash/issues
326
- documentation_uri: https://www.rubydoc.info/gems/snaky_hash/2.0.5
326
+ documentation_uri: https://www.rubydoc.info/gems/snaky_hash/2.0.7
327
327
  funding_uri: https://github.com/sponsors/pboling
328
328
  wiki_uri: https://github.com/ruby-oauth/snaky_hash/wiki
329
329
  news_uri: https://www.railsbling.com/tags/snaky_hash
@@ -331,7 +331,7 @@ metadata:
331
331
  rubygems_mfa_required: 'true'
332
332
  rdoc_options:
333
333
  - "--title"
334
- - "snaky_hash - \U0001F40D A very snaky hash"
334
+ - "snaky_hash - \U0001F52E A very snaky hash"
335
335
  - "--main"
336
336
  - README.md
337
337
  - "--exclude"
@@ -354,5 +354,5 @@ required_rubygems_version: !ruby/object:Gem::Requirement
354
354
  requirements: []
355
355
  rubygems_version: 4.0.10
356
356
  specification_version: 4
357
- summary: "\U0001F40D A very snaky hash"
357
+ summary: "\U0001F52E A very snaky hash"
358
358
  test_files: []
metadata.gz.sig CHANGED
Binary file