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 +4 -4
- checksums.yaml.gz.sig +0 -0
- data/CHANGELOG.md +32 -6
- data/CONTRIBUTING.md +1 -4
- data/README.md +42 -4
- data/SECURITY.md +7 -5
- data/lib/snaky_hash/snake.rb +64 -43
- data/lib/snaky_hash/string_keyed.rb +5 -0
- data/lib/snaky_hash/symbol_keyed.rb +5 -0
- data/lib/snaky_hash/version.rb +1 -1
- data/lib/snaky_hash.rb +3 -0
- data.tar.gz.sig +3 -0
- metadata +61 -8
- metadata.gz.sig +7 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2e85d5cdcbe75012d4230e8cf2444461cb395187250dba8a2c5dfb925f0ad547
|
4
|
+
data.tar.gz: 40f046fd2560be655d0e330c3e3239121b8a2044a0ddc157ceb462ca720cc005
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
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
|
-
## [
|
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/
|
26
|
-
[
|
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
|
-
[
|
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`
|
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
|
-
|
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://
|
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://
|
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 |
|
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
|
-
##
|
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.]
|
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
|
data/lib/snaky_hash/snake.rb
CHANGED
@@ -1,51 +1,72 @@
|
|
1
|
-
|
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 <
|
5
|
-
|
6
|
-
|
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
|
-
|
21
|
-
|
22
|
-
|
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
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
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
|
data/lib/snaky_hash/version.rb
CHANGED
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:
|
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
|
-
|
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/
|
105
|
-
changelog_uri: https://gitlab.com/oauth-xx/snaky_hash/-/blob/
|
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/
|
108
|
-
wiki_uri: https://gitlab.com/oauth-xx/snaky_hash/-/
|
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.
|
178
|
+
rubygems_version: 3.3.22
|
126
179
|
signing_key:
|
127
180
|
specification_version: 4
|
128
181
|
summary: A very snaky hash
|