hash_kit 0.7.0 → 0.8.0
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 +4 -4
- data/lib/hash_kit/helper.rb +24 -18
- data/lib/hash_kit/version.rb +1 -1
- metadata +25 -11
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 800ee63416294dcbb04c587e92fa18c429158142d879eab17605f7670a049312
|
|
4
|
+
data.tar.gz: c05a36904c4ce5b25b697d39d7f8b9c4b1a48aa0f58774f285d47868db8fb472
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: cc70b56602354b5a11ea2911b6850d294dccfac134adfdbe3434069504cc9f8c986409ba6504e7c0075a9a16b5c83df648a24747b3c75e5e929b948b71889820
|
|
7
|
+
data.tar.gz: bf0295c52e8511367f0dd4c380dcebdf5194005268804599d83c1f426b6251f1ff23d2b35aba83ab2891430038b68c95b19e7ff9e0435dde89bb6d92d190b7ff
|
data/lib/hash_kit/helper.rb
CHANGED
|
@@ -3,6 +3,20 @@
|
|
|
3
3
|
module HashKit
|
|
4
4
|
# Hash kit Helper class
|
|
5
5
|
class Helper
|
|
6
|
+
INDIFFERENT_PROC = proc do |h, k|
|
|
7
|
+
case k
|
|
8
|
+
when Symbol
|
|
9
|
+
# Symbol#name returns a frozen string without allocating (Ruby 3.0+)
|
|
10
|
+
str = k.name
|
|
11
|
+
h[str] if h.key?(str)
|
|
12
|
+
when String
|
|
13
|
+
sym = k.to_sym
|
|
14
|
+
h[sym] if h.key?(sym)
|
|
15
|
+
else
|
|
16
|
+
h[k.to_s]
|
|
17
|
+
end
|
|
18
|
+
end
|
|
19
|
+
|
|
6
20
|
# This method is called to make a hash allow indifferent access (it will
|
|
7
21
|
# accept both strings & symbols for a valid key).
|
|
8
22
|
def indifferent!(hash)
|
|
@@ -10,24 +24,15 @@ module HashKit
|
|
|
10
24
|
|
|
11
25
|
# Set the default proc to allow the key to be either string or symbol if
|
|
12
26
|
# a matching key is found.
|
|
13
|
-
hash.default_proc =
|
|
14
|
-
if h.key?(k.to_s)
|
|
15
|
-
h[k.to_s]
|
|
16
|
-
elsif h.key?(k.to_sym)
|
|
17
|
-
h[k.to_sym]
|
|
18
|
-
else
|
|
19
|
-
nil
|
|
20
|
-
end
|
|
21
|
-
end
|
|
27
|
+
hash.default_proc = INDIFFERENT_PROC
|
|
22
28
|
|
|
23
29
|
# Recursively process any child hashes
|
|
24
|
-
hash.
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
end
|
|
30
|
+
hash.each_value do |value|
|
|
31
|
+
case value
|
|
32
|
+
when Hash
|
|
33
|
+
indifferent!(value)
|
|
34
|
+
when Array
|
|
35
|
+
indifferent_array!(value)
|
|
31
36
|
end
|
|
32
37
|
end
|
|
33
38
|
|
|
@@ -38,9 +43,10 @@ module HashKit
|
|
|
38
43
|
return unless array.is_a?(Array)
|
|
39
44
|
|
|
40
45
|
array.each do |i|
|
|
41
|
-
|
|
46
|
+
case i
|
|
47
|
+
when Hash
|
|
42
48
|
indifferent!(i)
|
|
43
|
-
|
|
49
|
+
when Array
|
|
44
50
|
indifferent_array!(i)
|
|
45
51
|
end
|
|
46
52
|
end
|
data/lib/hash_kit/version.rb
CHANGED
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hash_kit
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.8.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Sage One
|
|
8
|
-
autorequire:
|
|
8
|
+
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date:
|
|
11
|
+
date: 2026-02-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: benchmark-ips
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: '2.0'
|
|
20
|
+
type: :development
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: '2.0'
|
|
13
27
|
- !ruby/object:Gem::Dependency
|
|
14
28
|
name: bundler
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -70,16 +84,16 @@ dependencies:
|
|
|
70
84
|
name: simplecov
|
|
71
85
|
requirement: !ruby/object:Gem::Requirement
|
|
72
86
|
requirements:
|
|
73
|
-
- - "
|
|
87
|
+
- - ">="
|
|
74
88
|
- !ruby/object:Gem::Version
|
|
75
|
-
version: '0
|
|
89
|
+
version: '0'
|
|
76
90
|
type: :development
|
|
77
91
|
prerelease: false
|
|
78
92
|
version_requirements: !ruby/object:Gem::Requirement
|
|
79
93
|
requirements:
|
|
80
|
-
- - "
|
|
94
|
+
- - ">="
|
|
81
95
|
- !ruby/object:Gem::Version
|
|
82
|
-
version: '0
|
|
96
|
+
version: '0'
|
|
83
97
|
description: Toolkit for working with Hashes
|
|
84
98
|
email:
|
|
85
99
|
- vaughan.britton@sage.com
|
|
@@ -97,7 +111,7 @@ homepage: https://github.com/sage/hash_kit
|
|
|
97
111
|
licenses:
|
|
98
112
|
- MIT
|
|
99
113
|
metadata: {}
|
|
100
|
-
post_install_message:
|
|
114
|
+
post_install_message:
|
|
101
115
|
rdoc_options: []
|
|
102
116
|
require_paths:
|
|
103
117
|
- lib
|
|
@@ -105,15 +119,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
|
105
119
|
requirements:
|
|
106
120
|
- - ">="
|
|
107
121
|
- !ruby/object:Gem::Version
|
|
108
|
-
version:
|
|
122
|
+
version: 3.0.0
|
|
109
123
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
110
124
|
requirements:
|
|
111
125
|
- - ">="
|
|
112
126
|
- !ruby/object:Gem::Version
|
|
113
127
|
version: '0'
|
|
114
128
|
requirements: []
|
|
115
|
-
rubygems_version: 3.
|
|
116
|
-
signing_key:
|
|
129
|
+
rubygems_version: 3.4.20
|
|
130
|
+
signing_key:
|
|
117
131
|
specification_version: 4
|
|
118
132
|
summary: Toolkit for working with Hashes
|
|
119
133
|
test_files: []
|