snaky_hash 1.0.1 → 2.0.1

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: e99b35c24440f1bdfff52d7df4819b0d3aa662bdbe22a6d71d1c80830229fc92
4
- data.tar.gz: 9fa5b0c87bda98373f1fd2361aca7f5288dd37ab813f868a405dfdffc72a43b8
3
+ metadata.gz: 2e85d5cdcbe75012d4230e8cf2444461cb395187250dba8a2c5dfb925f0ad547
4
+ data.tar.gz: 40f046fd2560be655d0e330c3e3239121b8a2044a0ddc157ceb462ca720cc005
5
5
  SHA512:
6
- metadata.gz: 731ec98f1d8eb0538a1b707ac09bbc7ddc18489993a332a872d2e1115d5d46d0c0a814d71729788fbd01a3b01990402d60116d321aa385a745970b67ca6ce364
7
- data.tar.gz: 671f10410a228e0989e940da413c6a13ce8404d315393cef59b9b043db05c7574afae1835c43a9728d06e81f15a9f64f01ec1c36f50d0a6564d8c703cea74a96
6
+ metadata.gz: c548df1650e90ab683271e79efe82d7c5748c1359d004a339d28daa448f0478066c33462c7d29c1e1c2dec7770b31ae9d08550cff6d270d4307c174918479d89
7
+ data.tar.gz: 17126cb28e0d3563f02742f717a01f11d3fc570583b168b7145fc798e2d86163e18b5fe33c5a40956448cfcc4febb4e74dfec60b979e0f39e7268491d78c00b5
checksums.yaml.gz.sig ADDED
Binary file
data/CHANGELOG.md CHANGED
@@ -4,24 +4,50 @@ All notable changes to this project will be documented in this file.
4
4
  The format (since v2) is based on [Keep a Changelog v1](https://keepachangelog.com/en/1.0.0/),
5
5
  and this project adheres to [Semantic Versioning v2](https://semver.org/spec/v2.0.0.html).
6
6
 
7
- ## Unreleased
7
+ ## [Unreleased]
8
8
  ### Added
9
9
  ### Changed
10
10
  ### Fixed
11
11
  ### Removed
12
12
 
13
- ## [Unreleased]
13
+ ## [2.0.1] - 2022-09-23 ([tag][2.0.1t])
14
+ ### Added
15
+ - Certificate for signing gem releases (@pboling)
16
+ - Gemspec metadata (@pboling)
17
+ - funding_uri
18
+ - mailing_list_uri
19
+ - Checksums for released gems (@pboling)
20
+ ### Changed
21
+ - Gem releases are now cryptographically signed (@pboling)
22
+
23
+ ## [2.0.0] - 2022-08-29 ([tag][2.0.0t])
24
+ ### Changed
25
+ - **BREAKING**: `SnakeHash::Snake` is now a mixin, now with support for symbol or string keys
26
+ ```ruby
27
+ class MySnakedHash < Hashie::Mash
28
+ include SnakyHash::Snake.new(key_type: :string) # or :symbol
29
+ end
30
+ ```
31
+ ### Added
32
+ - `SnakyHash::StringKeyed`: a Hashie::Mash class with snake-cased String keys
33
+ - `SnakyHash::SymbolKeyed`: a Hashie::Mash class with snake-cased Symbol keys
14
34
 
15
- ## [1.0.1] - 2022-08-26
35
+ ## [1.0.1] - 2022-08-26 ([tag][1.0.1t])
16
36
  ### Added
17
37
  - Missing LICENSE.txt file to release
18
38
  ### Removed
19
39
  - Accidentally added bundler dependency (vestige of transpec process) is now removed
20
40
 
21
- ## [1.0.0] - 2022-08-26
41
+ ## [1.0.0] - 2022-08-26 ([tag][1.0.0t])
22
42
  ### Added
23
43
  - Initial release
24
44
 
25
- [Unreleased]: https://gitlab.com/oauth-xx/snaky_hash/-/compare/v1.0.1...main
26
- [1.0.1]: https://gitlab.com/oauth-xx/snaky_hash/-/releases/tag/v1.0.1
45
+ [Unreleased]: https://gitlab.com/oauth-xx/snaky_hash/-/compare/v2.0.1...main
46
+ [2.0.1]: https://gitlab.com/oauth-xx/snaky_hash/-/compare/v2.0.0...v2.0.1
47
+ [2.0.1t]: https://gitlab.com/oauth-xx/snaky_hash/-/releases/tag/v2.0.1
48
+ [2.0.0]: https://gitlab.com/oauth-xx/snaky_hash/-/compare/v1.0.1...v2.0.0
49
+ [2.0.0t]: https://gitlab.com/oauth-xx/snaky_hash/-/releases/tag/v2.0.0
50
+ [1.0.1]: https://gitlab.com/oauth-xx/snaky_hash/-/compare/v1.0.0...v1.0.1
51
+ [1.0.1t]: https://gitlab.com/oauth-xx/snaky_hash/-/releases/tag/v1.0.1
27
52
  [1.0.0]: https://gitlab.com/oauth-xx/snaky_hash/-/releases/tag/v1.0.0
53
+ [1.0.0t]: https://gitlab.com/oauth-xx/snaky_hash/-/releases/tag/v1.0.0
data/CONTRIBUTING.md CHANGED
@@ -10,9 +10,7 @@ tests. Once you're happy with it send a pull request and post a message to the
10
10
 
11
11
  ## Contributors
12
12
 
13
- [![Contributors](https://contrib.rocks/image?repo=oauth-xx/oauth-ruby)][contributors]
14
-
15
- Made with [contributors-img][contrib-rocks].
13
+ See: [https://gitlab.com/oauth-xx/oauth-tty/-/graphs/main][contributors]
16
14
 
17
15
  [comment]: <> (Following links are used by README, CONTRIBUTING, Homepage)
18
16
 
@@ -20,4 +18,3 @@ Made with [contributors-img][contrib-rocks].
20
18
  [contributors]: https://gitlab.com/oauth-xx/snaky_hash/-/graphs/main
21
19
  [mailinglist]: http://groups.google.com/group/oauth-ruby
22
20
  [source]: https://gitlab.com/oauth-xx/snaky_hash/-/tree/main
23
- [contrib-rocks]: https://contrib.rocks
data/README.md CHANGED
@@ -5,7 +5,7 @@ and provide a nice psuedo-object interface.
5
5
 
6
6
  It has its roots in the `Rash` (specifically the [`rash_alt`](https://github.com/shishi/rash_alt) flavor), which is a special `Mash`, made popular by the `hashie` gem.
7
7
 
8
- `SnakyHash::Snake` does inherit from `Hashie::Mash` and adds some additional behaviors.
8
+ Classes that include `SnakyHash::Snake` should inherit from `Hashie::Mash`.
9
9
 
10
10
  ## Installation
11
11
 
@@ -19,7 +19,45 @@ If bundler is not being used to manage dependencies, install the gem by executin
19
19
 
20
20
  ## Usage
21
21
 
22
- For now, please see specs
22
+ ```ruby
23
+ class MySnakedHash < Hashie::Mash
24
+ include SnakyHash::Snake.new(key_type: :string) # or :symbol
25
+ end
26
+
27
+ snake = MySnakedHash.new(a: "a", "b" => "b", 2 => 2, "VeryFineHat" => "Feathers")
28
+ snake.a # => 'a'
29
+ snake.b # => 'b'
30
+ snake[2] # 2
31
+ snake.very_fine_hat # => 'Feathers'
32
+ snake[:very_fine_hat] # => 'Feathers'
33
+ snake["very_fine_hat"] # => 'Feathers'
34
+ ```
35
+
36
+ Note above that you can access the values via the string, or symbol.
37
+ The `key_type` determines how the key is actually stored, but the hash acts as "indifferent".
38
+ Note also that keys which do not respond to `to_sym`, because they don't have a natural conversion to a Symbol,
39
+ are left as-is.
40
+
41
+ ### Stranger Things
42
+
43
+ I don't recommend using these features... but they exist (for now).
44
+ You can still access the original un-snaked camel keys.
45
+ And through them you can even use un-snaked camel methods.
46
+
47
+ ```ruby
48
+ snake.key?("VeryFineHat") # => true
49
+ snake["VeryFineHat"] # => 'Feathers'
50
+ snake.VeryFineHat # => 'Feathers', PLEASE don't do this!!!
51
+ snake["VeryFineHat"] = "pop" # Please don't do this... you'll get a warning, and it works (for now), but no guarantees.
52
+ # WARN -- : You are setting a key that conflicts with a built-in method MySnakedHash#VeryFineHat defined in MySnakedHash. This can cause unexpected behavior when accessing the key as a property. You can still access the key via the #[] method.
53
+ # => "pop"
54
+ snake.very_fine_hat = "pop" # => 'pop', do this instead!!!
55
+ snake.very_fine_hat # => 'pop'
56
+ snake[:very_fine_hat] = "moose" # => 'moose', or do this instead!!!
57
+ snake.very_fine_hat # => 'moose'
58
+ snake["very_fine_hat"] = "cheese" # => 'cheese', or do this instead!!!
59
+ snake.very_fine_hat # => 'cheese'
60
+ ```
23
61
 
24
62
  ## Development
25
63
 
@@ -29,7 +67,7 @@ To install this gem onto your local machine, run `bundle exec rake install`. To
29
67
 
30
68
  ## Contributing
31
69
 
32
- Bug reports and pull requests are welcome on GitHub at https://github.com/pboling/snaky_hash. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://github.com/pboling/snaky_hash/blob/main/CODE_OF_CONDUCT.md).
70
+ Bug reports and pull requests are welcome on GitHub at https://gitlab.com/oauth-xx/snaky_hash. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the [code of conduct](https://gitlab.com/oauth-xx/snaky_hash/-/blob/main/CODE_OF_CONDUCT.md).
33
71
 
34
72
  ## License
35
73
 
@@ -37,4 +75,4 @@ The gem is available as open source under the terms of the [MIT License](https:/
37
75
 
38
76
  ## Code of Conduct
39
77
 
40
- Everyone interacting in the SnakyHash project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://github.com/pboling/snaky_hash/blob/main/CODE_OF_CONDUCT.md).
78
+ Everyone interacting in the SnakyHash project's codebases, issue trackers, chat rooms and mailing lists is expected to follow the [code of conduct](https://gitlab.com/oauth-xx/snaky_hash/-/blob/main/CODE_OF_CONDUCT.md).
data/SECURITY.md CHANGED
@@ -2,9 +2,9 @@
2
2
 
3
3
  ## Supported Versions
4
4
 
5
- | Version | Supported |
6
- |---------|--------------------|
7
- | 1.0.x | :white_check_mark: |
5
+ | Version | Supported | EOL | Post-EOL / Enterprise |
6
+ |---------|-----------|---------|---------------------------------------|
7
+ | 1.0.x | ✅ | 04/2023 | [Tidelift Subscription][tidelift-ref] |
8
8
 
9
9
  ### EOL Policy
10
10
 
@@ -15,8 +15,10 @@ Non-commercial support for the oldest version of Ruby (which itself is going EOL
15
15
  To report a security vulnerability, please use the [Tidelift security contact](https://tidelift.com/security).
16
16
  Tidelift will coordinate the fix and disclosure.
17
17
 
18
- ## OAuth for Enterprise
18
+ ## Snaky Hash for Enterprise
19
19
 
20
20
  Available as part of the Tidelift Subscription.
21
21
 
22
- The maintainers of snaky_hash and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. [Learn more.](https://tidelift.com/subscription/pkg/rubygems-oauth?utm_source=rubygems-oauth&utm_medium=referral&utm_campaign=enterprise&utm_term=repo)
22
+ The maintainers of snaky_hash and thousands of other packages are working with Tidelift to deliver commercial support and maintenance for the open source packages you use to build your applications. Save time, reduce risk, and improve code health, while paying the maintainers of the exact packages you use. [Learn more.][tidelift-ref]
23
+
24
+ [tidelift-ref]: https://tidelift.com/subscription/pkg/rubygems-snaky_hash?utm_source=rubygems-oauth&utm_medium=referral&utm_campaign=enterprise&utm_term=repo
@@ -1,51 +1,72 @@
1
- require "hashie/mash"
2
-
1
+ # This is a module-class hybrid.
2
+ #
3
+ # Hashie's standard SymbolizeKeys is similar to the functionality we want.
4
+ # ... but not quite. We need to support both String (for oauth2) and Symbol keys (for oauth).
5
+ # include Hashie::Extensions::Mash::SymbolizeKeys
3
6
  module SnakyHash
4
- class Snake < Hashie::Mash
5
- # This is similar to the functionality we want.
6
- # include Hashie::Extensions::Mash::SymbolizeKeys
7
-
8
- protected
9
-
10
- # Converts a key to a string,
11
- # but only if it is able to be converted to a symbol.
12
- #
13
- # @api private
14
- # @param [<K>] key the key to attempt convert to a symbol
15
- # @return [String, K]
16
- def convert_key(key)
17
- key.respond_to?(:to_sym) ? underscore_string(key.to_s) : key
7
+ class Snake < Module
8
+ def initialize(key_type: :string)
9
+ super()
10
+ @key_type = key_type
18
11
  end
19
12
 
20
- # Unlike its parent Mash, a SnakyHash::Snake will convert other
21
- # Hashie::Hash values to a SnakyHash::Snake when assigning
22
- # instead of respecting the existing subclass
23
- def convert_value(val, duping = false) #:nodoc:
24
- case val
25
- when self.class
26
- val.dup
27
- when ::Hash
28
- val = val.dup if duping
29
- self.class.new(val)
30
- when ::Array
31
- val.collect { |e| convert_value(e) }
32
- else
33
- val
34
- end
13
+ def included(base)
14
+ conversions_module = SnakyModulizer.to_mod(@key_type)
15
+ base.include(conversions_module)
35
16
  end
36
17
 
37
- # converts a camel_cased string to a underscore string
38
- # subs spaces with underscores, strips whitespace
39
- # Same way ActiveSupport does string.underscore
40
- def underscore_string(str)
41
- str.to_s.strip
42
- .tr(" ", "_")
43
- .gsub(/::/, "/")
44
- .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
45
- .gsub(/([a-z\d])([A-Z])/, '\1_\2')
46
- .tr("-", "_")
47
- .squeeze("_")
48
- .downcase
18
+ module SnakyModulizer
19
+ def self.to_mod(key_type)
20
+ Module.new do
21
+ # Converts a key to a symbol, or a string, depending on key_type,
22
+ # but only if it is able to be converted to a symbol,
23
+ # and after underscoring it.
24
+ #
25
+ # @api private
26
+ # @param [<K>] key the key to attempt convert to a symbol
27
+ # @return [Symbol, K]
28
+
29
+ case key_type
30
+ when :string then
31
+ define_method(:convert_key) { |key| key.respond_to?(:to_sym) ? underscore_string(key.to_s) : key }
32
+ when :symbol then
33
+ define_method(:convert_key) { |key| key.respond_to?(:to_sym) ? underscore_string(key.to_s).to_sym : key }
34
+ else
35
+ raise ArgumentError, "SnakyHash: Unhandled key_type: #{key_type}"
36
+ end
37
+
38
+ # Unlike its parent Mash, a SnakyHash::Snake will convert other
39
+ # Hashie::Hash values to a SnakyHash::Snake when assigning
40
+ # instead of respecting the existing subclass
41
+ define_method :convert_value do |val, duping = false| #:nodoc:
42
+ case val
43
+ when self.class
44
+ val.dup
45
+ when ::Hash
46
+ val = val.dup if duping
47
+ self.class.new(val)
48
+ when ::Array
49
+ val.collect { |e| convert_value(e) }
50
+ else
51
+ val
52
+ end
53
+ end
54
+
55
+ # converts a camel_cased string to a underscore string
56
+ # subs spaces with underscores, strips whitespace
57
+ # Same way ActiveSupport does string.underscore
58
+ define_method :underscore_string do |str|
59
+ str.to_s.strip
60
+ .tr(" ", "_")
61
+ .gsub(/::/, "/")
62
+ .gsub(/([A-Z]+)([A-Z][a-z])/, '\1_\2')
63
+ .gsub(/([a-z\d])([A-Z])/, '\1_\2')
64
+ .tr("-", "_")
65
+ .squeeze("_")
66
+ .downcase
67
+ end
68
+ end
69
+ end
49
70
  end
50
71
  end
51
72
  end
@@ -0,0 +1,5 @@
1
+ module SnakyHash
2
+ class StringKeyed < Hashie::Mash
3
+ include SnakyHash::Snake.new(key_type: :string)
4
+ end
5
+ end
@@ -0,0 +1,5 @@
1
+ module SnakyHash
2
+ class SymbolKeyed < Hashie::Mash
3
+ include SnakyHash::Snake.new(key_type: :symbol)
4
+ end
5
+ end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module SnakyHash
4
4
  module Version
5
- VERSION = "1.0.1".freeze
5
+ VERSION = "2.0.1".freeze
6
6
  end
7
7
  end
data/lib/snaky_hash.rb CHANGED
@@ -6,7 +6,10 @@ require "version_gem"
6
6
 
7
7
  require_relative "snaky_hash/version"
8
8
  require_relative "snaky_hash/snake"
9
+ require_relative "snaky_hash/string_keyed"
10
+ require_relative "snaky_hash/symbol_keyed"
9
11
 
12
+ # This is the namespace for this gem
10
13
  module SnakyHash
11
14
  end
12
15
 
data.tar.gz.sig ADDED
@@ -0,0 +1,3 @@
1
+ ���:�I�3�د7��P�P�$;1 ��i��?-y�ˡ̔��V�\�峹n&śV� �}y�ڟ1
2
+ ~�x=߷w�� #��T���3����+�����+1��>ؚ�fPns ��ZB "�6M_���o��
3
+ �ʭ��(���Ѕ�UIYI{<͸.]J��؆`�.���Y��t�1�����T���� 'Md��xA:�*G�2�v����^�יYJ�����J�g��X���\�������FZz����@�U�:�oDs�o4٠�������(�7�i��A�0��E�jh�6�o�I�"�@���T��rK���b�A�I�b�Ceϫ�)j8J/�8
metadata CHANGED
@@ -1,14 +1,42 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: snaky_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.1
4
+ version: 2.0.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Boling
8
8
  autorequire:
9
9
  bindir: exe
10
- cert_chain: []
11
- date: 2022-08-26 00:00:00.000000000 Z
10
+ cert_chain:
11
+ - |
12
+ -----BEGIN CERTIFICATE-----
13
+ MIIEgDCCAuigAwIBAgIBATANBgkqhkiG9w0BAQsFADBDMRUwEwYDVQQDDAxwZXRl
14
+ ci5ib2xpbmcxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
15
+ A2NvbTAeFw0yMjA5MTgyMzEyMzBaFw0yMzA5MTgyMzEyMzBaMEMxFTATBgNVBAMM
16
+ DHBldGVyLmJvbGluZzEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
17
+ LGQBGRYDY29tMIIBojANBgkqhkiG9w0BAQEFAAOCAY8AMIIBigKCAYEA2Dn1GM3W
18
+ 8K2/rvN1zz+06bQMcxD16ZKTihVwi7Pb1v3T98rM4Omnxohm3s+CwpDWGeiB9pj6
19
+ 0I/CTce0e4e3s8GKJSOrg93veImPSoH2PfsMsRsuB8wtqyiOCjLbF5o6S29x87r0
20
+ LA5EawH+Lh4xqrkkPjdffsmLk7TaCig/vlmNvnzxXKBdey/X/aEJZXzzBiWRfVdh
21
+ O1fmMbVKyieGv9HK7+pLotIoT08bjDv8NP6V7zZslwQRqW27bQc6cqC2LGIbTYO3
22
+ 3jt1kQxfMWmhOictS6SzG9VtKSrXf0L4Neq0Gh7CLBZBvJFWJYZPfb92YNITDbd8
23
+ emPOAQlXXNMN4mMXsEqtEhCPZRMnmwO+fOk/cC4AyglKi9lnQugCQoFV1XDMZST/
24
+ CYbzdQyadOdPDInTntG6V+Uw51d2QGXZ6PDDfrx9+toc/3sl5h68rCUGgE6Q3jPz
25
+ srinqmBsxv2vTpmd4FjmiAtEnwH5/ooLpQYL8UdAjEoeysxS3AwIh+5dAgMBAAGj
26
+ fzB9MAkGA1UdEwQCMAAwCwYDVR0PBAQDAgSwMB0GA1UdDgQWBBQWU6D156a2cle+
27
+ lb5RBfvVXlxTwjAhBgNVHREEGjAYgRZwZXRlci5ib2xpbmdAZ21haWwuY29tMCEG
28
+ A1UdEgQaMBiBFnBldGVyLmJvbGluZ0BnbWFpbC5jb20wDQYJKoZIhvcNAQELBQAD
29
+ ggGBAJ4SqhPlgUiLYIrphGXIaxXScHyvx4kixuvdrwhI4VoQV2qXvO7R6ZjOXVwX
30
+ f/z84BWPiTZ8lzThPbt1UV/BGwkvLw9I4RjOdzvUz3J42j9Ly6q63isall07bo3F
31
+ QWe/OBvIMBF1IbjC3q5vKPg4rq8+TkNRJNoE86U2gfR+PkW3jYYs9uiy0GloHDCP
32
+ k5xgaj0vSL0Uy5mTOPdk3K6a/sUGZyYniWK05zdhIi956ynhfGaFO988FFdVw5Jq
33
+ LHtXfIpAU8F7ES04syZSslxOluw7VlcSKyRdVIr737J92ZTduppB4PRGSKRgBsWV
34
+ hXTahRE72Kyw53Q7FAuzF3v102WxAAQ7BuMjW+MyCUT75fwPm3W4ELPL8HYkNGE7
35
+ 2oA5CPghFitRnvYS3GNrDG+9bNiRMEskeaBYwZ9UgReBQIwGYVj7LZk3UhiAsn44
36
+ gwGrEXGQGDZ0NIgBcmvMOqlXjkGQwQvugKycJ024z89+fz2332vdZIKTrSxJrXGk
37
+ 4/bR9A==
38
+ -----END CERTIFICATE-----
39
+ date: 2022-09-23 00:00:00.000000000 Z
12
40
  dependencies:
13
41
  - !ruby/object:Gem::Dependency
14
42
  name: hashie
@@ -31,6 +59,9 @@ dependencies:
31
59
  - - "~>"
32
60
  - !ruby/object:Gem::Version
33
61
  version: '1.1'
62
+ - - ">="
63
+ - !ruby/object:Gem::Version
64
+ version: 1.1.1
34
65
  type: :runtime
35
66
  prerelease: false
36
67
  version_requirements: !ruby/object:Gem::Requirement
@@ -38,6 +69,9 @@ dependencies:
38
69
  - - "~>"
39
70
  - !ruby/object:Gem::Version
40
71
  version: '1.1'
72
+ - - ">="
73
+ - !ruby/object:Gem::Version
74
+ version: 1.1.1
41
75
  - !ruby/object:Gem::Dependency
42
76
  name: rake
43
77
  requirement: !ruby/object:Gem::Requirement
@@ -66,6 +100,20 @@ dependencies:
66
100
  - - ">="
67
101
  - !ruby/object:Gem::Version
68
102
  version: '3'
103
+ - !ruby/object:Gem::Dependency
104
+ name: rspec-block_is_expected
105
+ requirement: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ type: :development
111
+ prerelease: false
112
+ version_requirements: !ruby/object:Gem::Requirement
113
+ requirements:
114
+ - - ">="
115
+ - !ruby/object:Gem::Version
116
+ version: '0'
69
117
  - !ruby/object:Gem::Dependency
70
118
  name: rubocop-lts
71
119
  requirement: !ruby/object:Gem::Requirement
@@ -83,6 +131,7 @@ dependencies:
83
131
  description: 'A Hashie::Mash joint to make #snakelife better'
84
132
  email:
85
133
  - peter.boling@gmail.com
134
+ - oauth-ruby@googlegroups.com
86
135
  executables: []
87
136
  extensions: []
88
137
  extra_rdoc_files: []
@@ -95,17 +144,21 @@ files:
95
144
  - SECURITY.md
96
145
  - lib/snaky_hash.rb
97
146
  - lib/snaky_hash/snake.rb
147
+ - lib/snaky_hash/string_keyed.rb
148
+ - lib/snaky_hash/symbol_keyed.rb
98
149
  - lib/snaky_hash/version.rb
99
150
  homepage: https://gitlab.com/oauth-xx/snaky_hash
100
151
  licenses:
101
152
  - MIT
102
153
  metadata:
103
154
  homepage_uri: https://gitlab.com/oauth-xx/snaky_hash
104
- source_code_uri: https://gitlab.com/oauth-xx/snaky_hash/-/tree/v1.0.1
105
- changelog_uri: https://gitlab.com/oauth-xx/snaky_hash/-/blob/v1.0.1/CHANGELOG.md
155
+ source_code_uri: https://gitlab.com/oauth-xx/snaky_hash/-/tree/v2.0.1
156
+ changelog_uri: https://gitlab.com/oauth-xx/snaky_hash/-/blob/v2.0.1/CHANGELOG.md
106
157
  bug_tracker_uri: https://gitlab.com/oauth-xx/snaky_hash/-/issues
107
- documentation_uri: https://www.rubydoc.info/gems/snaky_hash/1.0.1
108
- wiki_uri: https://gitlab.com/oauth-xx/snaky_hash/-/wikis/home
158
+ documentation_uri: https://www.rubydoc.info/gems/snaky_hash/2.0.1
159
+ wiki_uri: https://gitlab.com/oauth-xx/snaky_hash/-/wiki
160
+ mailing_list_uri: https://groups.google.com/g/oauth-ruby
161
+ funding_uri: https://liberapay.com/pboling
109
162
  rubygems_mfa_required: 'true'
110
163
  post_install_message:
111
164
  rdoc_options: []
@@ -122,7 +175,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
122
175
  - !ruby/object:Gem::Version
123
176
  version: '0'
124
177
  requirements: []
125
- rubygems_version: 3.3.21
178
+ rubygems_version: 3.3.22
126
179
  signing_key:
127
180
  specification_version: 4
128
181
  summary: A very snaky hash
metadata.gz.sig ADDED
@@ -0,0 +1,7 @@
1
+ ����� <X�!Y��k�������ql}M��)m�g�PJ€�#�yk48;��P�to��eBRcw���"�}�
2
+ !w�N�1վ���'(
3
+ ԯ�[���ʵ�o���zN�iNSYh[�j�C���v�>���M
4
+ �<Q�J�S�!xJ� 2�M�u��؉ � rvtA��?=$�y��^ 
5
+ 䳣�1>_��0o2�=�U��&���k��Q�
6
+ N���}�C`F� �Gd@�=z�״gk��ŝ���=4le��
7
+ ��>����5/mރ%�-O!ܓ8)��