Skip to content

Commit b452109

Browse files
committed
🔖 Prepare release v2.0.5
1 parent 01f8b25 commit b452109

60 files changed

Lines changed: 9994 additions & 50 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

CHANGELOG.md

Lines changed: 15 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -22,9 +22,6 @@ Please file a bug if you notice a violation of semantic versioning.
2222

2323
### Changed
2424

25-
- Refreshed project scaffolding with the current `kettle-jem` template, including
26-
updated CI workflows, modular gemfiles, and development tooling floors.
27-
2825
### Deprecated
2926

3027
### Removed
@@ -33,6 +30,18 @@ Please file a bug if you notice a violation of semantic versioning.
3330

3431
### Security
3532

33+
## [2.0.5] - 2026-06-07
34+
35+
- TAG: [v2.0.5][2.0.5t]
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+
### Changed
41+
42+
- Refreshed project scaffolding with the current `kettle-jem` template, including
43+
updated CI workflows, modular gemfiles, and development tooling floors.
44+
3645
## [2.0.4] - 2026-05-16
3746

3847
- TAG: [v2.0.4][2.0.4t]
@@ -151,7 +160,9 @@ end
151160

152161
- Initial release
153162

154-
[Unreleased]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.4...HEAD
163+
[Unreleased]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.5...HEAD
164+
[2.0.5]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.4...v2.0.5
165+
[2.0.5t]: https://github.com/ruby-oauth/snaky_hash/releases/tag/v2.0.5
155166
[2.0.4]: https://github.com/ruby-oauth/snaky_hash/compare/v2.0.3...v2.0.4
156167
[2.0.4t]: https://github.com/ruby-oauth/snaky_hash/releases/tag/v2.0.4
157168
[2.0.3]: https://gitlab.com/oauth-xx/snaky_hash/-/compare/v2.0.2...v2.0.3

Gemfile.lock

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
PATH
22
remote: .
33
specs:
4-
snaky_hash (2.0.4)
4+
snaky_hash (2.0.5)
55
hashie (>= 0.1.0, < 6)
66
version_gem (>= 1.1.8, < 3)
77

@@ -431,6 +431,7 @@ CHECKSUMS
431431
backports (3.25.3) sha256=94298d32dc3c40ca15633b54e282780b49e2db0c045f602ea1907e4f63a17235
432432
benchmark (0.5.0) sha256=465df122341aedcb81a2a24b4d3bd19b6c67c1530713fd533f3ff034e419236c
433433
bigdecimal (4.1.2) sha256=53d217666027eab4280346fba98e7d5b66baaae1b9c3c1c0ffe89d48188a3fbd
434+
bundler (4.0.11) sha256=5bcec0fb78302e48d02ee46f10ee6e6942be647ba5b44a6d1ddfda9a240ce785
434435
bundler-audit (0.9.3) sha256=81c8766c71e47d0d28a0f98c7eed028539f21a6ea3cd8f685eb6f42333c9b4e9
435436
cmdparse (3.0.7) sha256=f7c5cace10bec6abf853370ae095e4b97a84ed9d847b3fb38f41cc4fbc950739
436437
concurrent-ruby (1.3.6) sha256=6b56837e1e7e5292f9864f34b69c5a2cbc75c0cf5338f1ce9903d10fa762d5ab
@@ -532,7 +533,7 @@ CHECKSUMS
532533
simplecov-lcov (0.9.0) sha256=7a77a31e200a595ed4b0249493056efd0c920601f53d2ef135ca34ee796346cd
533534
simplecov-rcov (0.3.7) sha256=372f50bf6df6b6350b7d0c840f2f8bdabe021861a43c26877b747c9ac96139fc
534535
simplecov_json_formatter (0.1.4) sha256=529418fbe8de1713ac2b2d612aa3daa56d316975d307244399fa4838c601b428
535-
snaky_hash (2.0.4)
536+
snaky_hash (2.0.5)
536537
standard (1.54.0) sha256=7a4b08f83d9893083c8f03bc486f0feeb6a84d48233b40829c03ef4767ea0100
537538
standard-custom (1.0.2) sha256=424adc84179a074f1a2a309bb9cf7cd6bfdb2b6541f20c6bf9436c0ba22a652b
538539
standard-performance (1.9.0) sha256=49483d31be448292951d80e5e67cdcb576c2502103c7b40aec6f1b6e9c88e3f2

REEK

Lines changed: 0 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,27 +0,0 @@
1-
spec/snaky_hash/snake_spec.rb -- 1 warning:
2-
[4]:IrresponsibleModule: TheSnakedHash has no descriptive comment [https://github.com/troessner/reek/blob/v6.5.0/docs/Irresponsible-Module.md]
3-
lib/snaky_hash/extensions.rb -- 1 warning:
4-
[11]:InstanceVariableAssumption: SnakyHash::Extensions assumes too much for instance variable '@extensions' [https://github.com/troessner/reek/blob/v6.5.0/docs/Instance-Variable-Assumption.md]
5-
lib/snaky_hash/serializer.rb -- 7 warnings:
6-
[132]:NilCheck: SnakyHash::Serializer#blank? performs a nil-check [https://github.com/troessner/reek/blob/v6.5.0/docs/Nil-Check.md]
7-
[180]:TooManyStatements: SnakyHash::Serializer#load_hash has approx 6 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
8-
[99]:TooManyStatements: SnakyHash::Serializer::BackportedInstanceMethods#transform_values has approx 7 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
9-
[58]:TooManyStatements: SnakyHash::Serializer::Modulizer#to_extended_mod has approx 13 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
10-
[170]:UncommunicativeVariableName: SnakyHash::Serializer#dump_value has the variable name 'v' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
11-
[214]:UncommunicativeVariableName: SnakyHash::Serializer#load_value has the variable name 'v' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
12-
[131]:UtilityFunction: SnakyHash::Serializer#blank? doesn't depend on instance state (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Utility-Function.md]
13-
lib/snaky_hash/snake.rb -- 11 warnings:
14-
[30]:BooleanParameter: SnakyHash::Snake#initialize has boolean parameter 'serializer' [https://github.com/troessner/reek/blob/v6.5.0/docs/Boolean-Parameter.md]
15-
[69, 75]:DuplicateMethodCall: SnakyHash::Snake::SnakyModulizer#to_mod calls 'define_method(:convert_key)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
16-
[69, 75]:DuplicateMethodCall: SnakyHash::Snake::SnakyModulizer#to_mod calls 'key.respond_to?(:to_sym)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
17-
[69, 75]:DuplicateMethodCall: SnakyHash::Snake::SnakyModulizer#to_mod calls 'key.to_s' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
18-
[87, 91]:DuplicateMethodCall: SnakyHash::Snake::SnakyModulizer#to_mod calls 'self.class' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
19-
[69, 75]:DuplicateMethodCall: SnakyHash::Snake::SnakyModulizer#to_mod calls 'underscore_string(key.to_s)' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
20-
[88, 90]:DuplicateMethodCall: SnakyHash::Snake::SnakyModulizer#to_mod calls 'val.dup' 2 times [https://github.com/troessner/reek/blob/v6.5.0/docs/Duplicate-Method-Call.md]
21-
[69, 75]:ManualDispatch: SnakyHash::Snake::SnakyModulizer#to_mod manually dispatches method call [https://github.com/troessner/reek/blob/v6.5.0/docs/Manual-Dispatch.md]
22-
[93]:NestedIterators: SnakyHash::Snake::SnakyModulizer#to_mod contains iterators nested 2 deep [https://github.com/troessner/reek/blob/v6.5.0/docs/Nested-Iterators.md]
23-
[56]:TooManyStatements: SnakyHash::Snake::SnakyModulizer#to_mod has approx 17 statements [https://github.com/troessner/reek/blob/v6.5.0/docs/Too-Many-Statements.md]
24-
[93]:UncommunicativeVariableName: SnakyHash::Snake::SnakyModulizer#to_mod has the variable name 'e' [https://github.com/troessner/reek/blob/v6.5.0/docs/Uncommunicative-Variable-Name.md]
25-
.yard_gfm_support.rb -- 1 warning:
26-
[9, 9]:FeatureEnvy: KramdownGfmDocument#initialize refers to 'options' more than self (maybe move it to another class?) [https://github.com/troessner/reek/blob/v6.5.0/docs/Feature-Envy.md]
27-
21 total warnings

docs/SnakyHash.html

Lines changed: 186 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
<!DOCTYPE html>
2+
<html>
3+
<head>
4+
<meta charset="utf-8">
5+
<meta name="viewport" content="width=device-width, initial-scale=1.0">
6+
<title>
7+
Module: SnakyHash
8+
9+
&mdash; Documentation by YARD 0.9.44
10+
11+
</title>
12+
13+
<link rel="stylesheet" href="css/style.css" type="text/css">
14+
15+
<link rel="stylesheet" href="css/common.css" type="text/css">
16+
17+
<script type="text/javascript">
18+
pathId = "SnakyHash";
19+
relpath = '';
20+
</script>
21+
22+
23+
<script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
24+
25+
<script type="text/javascript" charset="utf-8" src="js/app.js"></script>
26+
27+
28+
</head>
29+
<body>
30+
<div id="main_progress" aria-hidden="true"></div>
31+
32+
<div class="nav_wrap">
33+
<iframe id="nav" src="class_list.html?1"></iframe>
34+
<div id="resizer"></div>
35+
</div>
36+
37+
<div id="main" tabindex="-1">
38+
<div id="header">
39+
<div id="menu">
40+
41+
<a href="_index.html">Index (S)</a> &raquo;
42+
43+
44+
<span class="title">SnakyHash</span>
45+
46+
</div>
47+
48+
<div id="search">
49+
50+
<a class="full_list_link" id="class_list_link"
51+
href="class_list.html">
52+
53+
<svg width="24" height="24">
54+
<rect x="0" y="4" width="24" height="4" rx="1" ry="1"></rect>
55+
<rect x="0" y="12" width="24" height="4" rx="1" ry="1"></rect>
56+
<rect x="0" y="20" width="24" height="4" rx="1" ry="1"></rect>
57+
</svg>
58+
</a>
59+
60+
</div>
61+
<div class="clear"></div>
62+
</div>
63+
64+
<div id="content"><h1>Module: SnakyHash
65+
66+
67+
68+
</h1>
69+
<div class="box_info">
70+
71+
72+
73+
74+
75+
76+
77+
78+
79+
80+
81+
<dl>
82+
<dt>Defined in:</dt>
83+
<dd>lib/snaky_hash.rb<span class="defines">,<br>
84+
lib/snaky_hash/snake.rb,<br> lib/snaky_hash/version.rb,<br> lib/snaky_hash/extensions.rb,<br> lib/snaky_hash/serializer.rb,<br> lib/snaky_hash/string_keyed.rb,<br> lib/snaky_hash/symbol_keyed.rb</span>
85+
86+
</dd>
87+
</dl>
88+
89+
</div>
90+
91+
<h2>Overview</h2><div class="docstring">
92+
<div class="discussion">
93+
<p>This is a module-class hybrid.</p>
94+
95+
<p>A flexible key conversion system that supports both String and Symbol keys,<br />
96+
with optional serialization capabilities.</p>
97+
98+
<p>Hashie’s standard SymbolizeKeys is similar to the functionality we want.<br />
99+
… but not quite. We need to support both String (for oauth2) and Symbol keys (for oauth).<br />
100+
see: Hashie::Extensions::Mash::SymbolizeKeys</p>
101+
102+
103+
</div>
104+
</div>
105+
<div class="tags">
106+
107+
<div class="examples">
108+
<h4 class="tag_title">Examples:</h4>
109+
110+
111+
<h5 class="example_title"><div class='inline'><p>Basic usage with string keys</p>
112+
</div></h5>
113+
114+
<pre class="example code"><code><span class='kw'>class</span> <span class='const'>MyHash</span> <span class='op'>&lt;</span> <span class='const'>Hashie</span><span class='op'>::</span><span class='const'>Mash</span>
115+
<span class='id identifier rubyid_include'>include</span> <span class='const'>SnakyHash</span><span class='op'>::</span><span class='const'><span class='object_link'><a href="SnakyHash/Snake.html" title="SnakyHash::Snake (class)">Snake</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="SnakyHash/Snake.html#initialize-instance_method" title="SnakyHash::Snake#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>key_type:</span> <span class='symbol'>:string</span><span class='rparen'>)</span>
116+
<span class='kw'>end</span></code></pre>
117+
118+
119+
<h5 class="example_title"><div class='inline'><p>Usage with symbol keys and serialization</p>
120+
</div></h5>
121+
122+
<pre class="example code"><code><span class='kw'>class</span> <span class='const'>MySerializableHash</span> <span class='op'>&lt;</span> <span class='const'>Hashie</span><span class='op'>::</span><span class='const'>Mash</span>
123+
<span class='id identifier rubyid_include'>include</span> <span class='const'>SnakyHash</span><span class='op'>::</span><span class='const'><span class='object_link'><a href="SnakyHash/Snake.html" title="SnakyHash::Snake (class)">Snake</a></span></span><span class='period'>.</span><span class='id identifier rubyid_new'><span class='object_link'><a href="SnakyHash/Snake.html#initialize-instance_method" title="SnakyHash::Snake#initialize (method)">new</a></span></span><span class='lparen'>(</span><span class='label'>key_type:</span> <span class='symbol'>:symbol</span><span class='comma'>,</span> <span class='label'>serializer:</span> <span class='kw'>true</span><span class='rparen'>)</span>
124+
<span class='kw'>end</span></code></pre>
125+
126+
</div>
127+
128+
129+
</div><h2>Defined Under Namespace</h2>
130+
<p class="children">
131+
132+
133+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="SnakyHash/Serializer.html" title="SnakyHash::Serializer (module)">Serializer</a></span>, <span class='object_link'><a href="SnakyHash/Version.html" title="SnakyHash::Version (module)">Version</a></span>
134+
135+
136+
137+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="SnakyHash/Error.html" title="SnakyHash::Error (class)">Error</a></span>, <span class='object_link'><a href="SnakyHash/Extensions.html" title="SnakyHash::Extensions (class)">Extensions</a></span>, <span class='object_link'><a href="SnakyHash/Snake.html" title="SnakyHash::Snake (class)">Snake</a></span>, <span class='object_link'><a href="SnakyHash/StringKeyed.html" title="SnakyHash::StringKeyed (class)">StringKeyed</a></span>, <span class='object_link'><a href="SnakyHash/SymbolKeyed.html" title="SnakyHash::SymbolKeyed (class)">SymbolKeyed</a></span>
138+
139+
140+
</p>
141+
142+
143+
<h2>
144+
Constant Summary
145+
<small><a href="#" class="constants_summary_toggle">collapse</a></small>
146+
</h2>
147+
148+
<dl class="constants">
149+
150+
<dt id="VERSION-constant" class="">VERSION =
151+
<div class="docstring">
152+
<div class="discussion">
153+
<p>Traditional Constant Location</p>
154+
155+
156+
</div>
157+
</div>
158+
<div class="tags">
159+
160+
161+
</div>
162+
</dt>
163+
<dd><pre class="code"><span class='const'><span class='object_link'><a href="SnakyHash/Version.html" title="SnakyHash::Version (module)">Version</a></span></span><span class='op'>::</span><span class='const'><span class='object_link'><a href="SnakyHash/Version.html#VERSION-constant" title="SnakyHash::Version::VERSION (constant)">VERSION</a></span></span></pre></dd>
164+
165+
</dl>
166+
167+
168+
169+
170+
171+
172+
173+
174+
175+
176+
</div>
177+
178+
<div id="footer">
179+
Generated on Sun Jun 7 00:08:23 2026 by
180+
<a href="https://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
181+
0.9.44 (ruby-4.0.5).
182+
</div>
183+
184+
</div>
185+
</body>
186+
</html>

0 commit comments

Comments
 (0)