hash-proxy 0.1.5 → 1.0.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 +7 -0
- data/.ruby-gemset +1 -0
- data/.ruby-version +1 -0
- data/Gemfile +1 -0
- data/Gemfile.lock +43 -21
- data/History.txt +4 -0
- data/LICENSE +25 -0
- data/README.md +8 -1
- data/Rakefile +6 -5
- data/lib/hash_proxy/proxy.rb +1 -1
- data/spec/hash_proxy_spec.rb +50 -48
- data/version.txt +1 -1
- metadata +26 -108
- data/.rvmrc +0 -1
checksums.yaml
ADDED
|
@@ -0,0 +1,7 @@
|
|
|
1
|
+
---
|
|
2
|
+
SHA256:
|
|
3
|
+
metadata.gz: 1855238cbfa38c1d0a5a5b132a738b2fb3a4e8b246ce04894c8078a465cec86a
|
|
4
|
+
data.tar.gz: 8978e1a5e8a4085e72efe37fc20cfe6f16dc1a88f6ce5dfb8276018e90f9b14f
|
|
5
|
+
SHA512:
|
|
6
|
+
metadata.gz: ad492489ada070fc21f89f242490b19fd47b05757945c3bfd874229c88b9c10c5818c777e9a2c4e8cff67259bdbfe5472e2822e160ec58362bc81e74991ec2c6
|
|
7
|
+
data.tar.gz: 0cefd52c86fa17359ec33c3ab2f819784fdbe81c693ae9402db95679f4c51cde21b67a4785ed38494600a7dd775ccd0a826f39ecc89bf73e64012331495c6058
|
data/.ruby-gemset
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
hash-proxy
|
data/.ruby-version
ADDED
|
@@ -0,0 +1 @@
|
|
|
1
|
+
3.1.1
|
data/Gemfile
CHANGED
data/Gemfile.lock
CHANGED
|
@@ -1,34 +1,52 @@
|
|
|
1
1
|
GEM
|
|
2
2
|
remote: https://rubygems.org/
|
|
3
3
|
specs:
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
4
|
+
addressable (2.8.1)
|
|
5
|
+
public_suffix (>= 2.0.2, < 6.0)
|
|
6
|
+
bones (3.9.0)
|
|
7
|
+
little-plugger (~> 1.1)
|
|
8
|
+
loquacious (~> 1.9)
|
|
9
|
+
rake (~> 13.0)
|
|
10
|
+
rdoc (~> 6.0)
|
|
11
|
+
bones-git (1.3.1)
|
|
12
|
+
git (~> 1.2)
|
|
11
13
|
bones-rspec (2.0.1)
|
|
12
14
|
bones (>= 3.6)
|
|
13
15
|
rspec (>= 1.3)
|
|
14
16
|
bones-yard (1.0.0)
|
|
15
17
|
bones (>= 3.5.0)
|
|
16
18
|
yard (>= 0.5.8)
|
|
17
|
-
diff-lcs (1.
|
|
18
|
-
git (1.
|
|
19
|
-
|
|
19
|
+
diff-lcs (1.5.0)
|
|
20
|
+
git (1.13.0)
|
|
21
|
+
addressable (~> 2.8)
|
|
22
|
+
rchardet (~> 1.8)
|
|
23
|
+
little-plugger (1.1.4)
|
|
20
24
|
loquacious (1.9.1)
|
|
21
|
-
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
25
|
+
psych (5.0.1)
|
|
26
|
+
stringio
|
|
27
|
+
public_suffix (5.0.1)
|
|
28
|
+
rake (13.0.6)
|
|
29
|
+
rchardet (1.8.0)
|
|
30
|
+
rdoc (6.5.0)
|
|
31
|
+
psych (>= 4.0.0)
|
|
32
|
+
redcarpet (3.5.1)
|
|
33
|
+
rspec (3.12.0)
|
|
34
|
+
rspec-core (~> 3.12.0)
|
|
35
|
+
rspec-expectations (~> 3.12.0)
|
|
36
|
+
rspec-mocks (~> 3.12.0)
|
|
37
|
+
rspec-core (3.12.0)
|
|
38
|
+
rspec-support (~> 3.12.0)
|
|
39
|
+
rspec-expectations (3.12.1)
|
|
40
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
41
|
+
rspec-support (~> 3.12.0)
|
|
42
|
+
rspec-mocks (3.12.1)
|
|
43
|
+
diff-lcs (>= 1.2.0, < 2.0)
|
|
44
|
+
rspec-support (~> 3.12.0)
|
|
45
|
+
rspec-support (3.12.0)
|
|
46
|
+
stringio (3.0.4)
|
|
47
|
+
webrick (1.7.0)
|
|
48
|
+
yard (0.9.28)
|
|
49
|
+
webrick (~> 1.7.0)
|
|
32
50
|
|
|
33
51
|
PLATFORMS
|
|
34
52
|
ruby
|
|
@@ -39,3 +57,7 @@ DEPENDENCIES
|
|
|
39
57
|
bones-rspec
|
|
40
58
|
bones-yard
|
|
41
59
|
redcarpet
|
|
60
|
+
rspec
|
|
61
|
+
|
|
62
|
+
BUNDLED WITH
|
|
63
|
+
2.4.1
|
data/History.txt
CHANGED
data/LICENSE
ADDED
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
License
|
|
2
|
+
-------
|
|
3
|
+
|
|
4
|
+
(The MIT License)
|
|
5
|
+
|
|
6
|
+
Copyright (c) 2012-2022 Douglas A. Seifert
|
|
7
|
+
|
|
8
|
+
Permission is hereby granted, free of charge, to any person obtaining
|
|
9
|
+
a copy of this software and associated documentation files (the
|
|
10
|
+
'Software'), to deal in the Software without restriction, including
|
|
11
|
+
without limitation the rights to use, copy, modify, merge, publish,
|
|
12
|
+
distribute, sublicense, and/or sell copies of the Software, and to
|
|
13
|
+
permit persons to whom the Software is furnished to do so, subject to
|
|
14
|
+
the following conditions:
|
|
15
|
+
|
|
16
|
+
The above copyright notice and this permission notice shall be
|
|
17
|
+
included in all copies or substantial portions of the Software.
|
|
18
|
+
|
|
19
|
+
THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
|
|
20
|
+
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
|
|
21
|
+
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
|
|
22
|
+
IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
|
|
23
|
+
CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
|
|
24
|
+
TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
|
|
25
|
+
SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
data/README.md
CHANGED
|
@@ -82,6 +82,13 @@ Original author: Douglas A. Seifert (doug@dseifert.net)
|
|
|
82
82
|
|
|
83
83
|
History
|
|
84
84
|
-------
|
|
85
|
+
### Version 1.0.0 / 2022-12-27
|
|
86
|
+
* upgrade to latest versions of everything
|
|
87
|
+
* switch specs over to expect style
|
|
88
|
+
|
|
89
|
+
### Version 0.1.6 / 2014-09-25
|
|
90
|
+
* Pin to rspec < 3
|
|
91
|
+
* fix a warning
|
|
85
92
|
|
|
86
93
|
### Version 0.1.5 / 2013-03-12
|
|
87
94
|
* Support #to_json
|
|
@@ -124,7 +131,7 @@ License
|
|
|
124
131
|
|
|
125
132
|
(The MIT License)
|
|
126
133
|
|
|
127
|
-
Copyright (c) 2012 Douglas A. Seifert
|
|
134
|
+
Copyright (c) 2012-2022 Douglas A. Seifert
|
|
128
135
|
|
|
129
136
|
Permission is hereby granted, free of charge, to any person obtaining
|
|
130
137
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
|
@@ -13,11 +13,12 @@ Bones {
|
|
|
13
13
|
authors 'Douglas A. Seifert'
|
|
14
14
|
email 'doug@dseifert.net'
|
|
15
15
|
url 'https://github.com/seifertd/hash-proxy'
|
|
16
|
-
|
|
17
|
-
depend_on 'bones
|
|
18
|
-
depend_on 'bones-
|
|
19
|
-
depend_on 'bones-
|
|
20
|
-
depend_on '
|
|
16
|
+
license 'MIT'
|
|
17
|
+
#depend_on 'bones', :development => true
|
|
18
|
+
#depend_on 'bones-rspec', :development => true
|
|
19
|
+
#depend_on 'bones-git', :development => true
|
|
20
|
+
#depend_on 'bones-yard', :development => true
|
|
21
|
+
#depend_on 'redcarpet', :development => true
|
|
21
22
|
|
|
22
23
|
yard.exclude ['version.txt']
|
|
23
24
|
}
|
data/lib/hash_proxy/proxy.rb
CHANGED
|
@@ -121,7 +121,7 @@ module HashProxy
|
|
|
121
121
|
# p.stuff => NullObject
|
|
122
122
|
# p.respond_to?(:stuff) => true
|
|
123
123
|
#
|
|
124
|
-
def respond_to?(method)
|
|
124
|
+
def respond_to?(method, include_all = false)
|
|
125
125
|
method_name = method.to_s
|
|
126
126
|
method_name.gsub(/=$/, '')
|
|
127
127
|
(@hash && @converted && (@hash.keys.map(&:to_s) + @converted.keys.map(&:to_s)).include?(method_name)) || super
|
data/spec/hash_proxy_spec.rb
CHANGED
|
@@ -6,55 +6,55 @@ describe HashProxy do
|
|
|
6
6
|
proxy = HashProxy.create_from(:size => 42, :bar => :foo)
|
|
7
7
|
data = Marshal.dump(proxy)
|
|
8
8
|
proxy2 = Marshal.load(data)
|
|
9
|
-
proxy.keys.
|
|
10
|
-
proxy.values.
|
|
9
|
+
expect(proxy.keys).to eq(proxy2.keys)
|
|
10
|
+
expect(proxy.values).to eq(proxy2.values)
|
|
11
11
|
end
|
|
12
12
|
|
|
13
13
|
it "works with null values" do
|
|
14
14
|
proxy = HashProxy.create_from(:null => nil)
|
|
15
|
-
proxy.size.
|
|
16
|
-
proxy.null.
|
|
17
|
-
proxy.null.class.
|
|
18
|
-
proxy.null.to_a.
|
|
19
|
-
proxy.null.to_ary.
|
|
15
|
+
expect(proxy.size).to eq(1)
|
|
16
|
+
expect(proxy.null).to be_nil
|
|
17
|
+
expect(proxy.null.class).to eq(HashProxy::NullObject)
|
|
18
|
+
expect(proxy.null.to_a).to eq([])
|
|
19
|
+
expect(proxy.null.to_ary).to eq([])
|
|
20
20
|
end
|
|
21
21
|
|
|
22
22
|
it "works with keys called size" do
|
|
23
23
|
proxy = HashProxy.create_from(:size => 42, :bar => :foo)
|
|
24
|
-
proxy.size.
|
|
25
|
-
proxy[:size].
|
|
24
|
+
expect(proxy.size).to eq(2)
|
|
25
|
+
expect(proxy[:size]).to eq(42)
|
|
26
26
|
end
|
|
27
27
|
|
|
28
28
|
|
|
29
29
|
it "handles booleans" do
|
|
30
30
|
proxy = HashProxy.create_from(:indexed => false, :followed => true)
|
|
31
|
-
proxy.indexed.
|
|
32
|
-
proxy.followed.
|
|
31
|
+
expect(proxy.indexed).to eq(false)
|
|
32
|
+
expect(proxy.followed).to eq(true)
|
|
33
33
|
end
|
|
34
34
|
|
|
35
35
|
it "does not get confused by methods defined on Kernel" do
|
|
36
36
|
proxy = HashProxy::Proxy.new({})
|
|
37
|
-
|
|
38
|
-
proxy.format.
|
|
37
|
+
expect{proxy[:format]}.to_not raise_error
|
|
38
|
+
expect(proxy.format).to be_nil
|
|
39
39
|
end
|
|
40
40
|
|
|
41
41
|
it "supports enumerable" do
|
|
42
42
|
hash = {foo: 'bar', baz: 'bip', smee: 'cree'}
|
|
43
43
|
proxy = HashProxy::Proxy.new(hash)
|
|
44
44
|
iterator = proxy.each
|
|
45
|
-
iterator.to_a.
|
|
45
|
+
expect(iterator.to_a).to eq([[:foo, 'bar'], [:baz, 'bip'], [:smee, 'cree']])
|
|
46
46
|
|
|
47
|
-
proxy.take(1).
|
|
47
|
+
expect(proxy.take(1)).to eq([[:foo, 'bar']])
|
|
48
48
|
end
|
|
49
49
|
|
|
50
50
|
it "behaves kind of like a hash" do
|
|
51
51
|
hash = {foo: 'bar', baz: 'bip', smee: 'cree'}
|
|
52
52
|
proxy = HashProxy::Proxy.new(hash)
|
|
53
|
-
proxy.size.
|
|
54
|
-
proxy.each.to_a.size.
|
|
55
|
-
proxy.each.to_a.map{|a| a.first}.
|
|
56
|
-
proxy.each.to_a.map{|a| a.last}.
|
|
57
|
-
proxy[:foo].
|
|
53
|
+
expect(proxy.size).to eq(3)
|
|
54
|
+
expect(proxy.each.to_a.size).to eq(3)
|
|
55
|
+
expect(proxy.each.to_a.map{|a| a.first}).to eq([:foo, :baz, :smee])
|
|
56
|
+
expect(proxy.each.to_a.map{|a| a.last}).to eq(['bar', 'bip', 'cree'])
|
|
57
|
+
expect(proxy[:foo]).to eq('bar')
|
|
58
58
|
end
|
|
59
59
|
|
|
60
60
|
it "can call setters" do
|
|
@@ -62,79 +62,81 @@ describe HashProxy do
|
|
|
62
62
|
proxy.foo = 'foo val'
|
|
63
63
|
proxy.bar = {:bip => :baz, :smoo => :smee}
|
|
64
64
|
|
|
65
|
-
proxy.size.
|
|
66
|
-
proxy[:bar].class.
|
|
65
|
+
expect(proxy.size).to eq(2)
|
|
66
|
+
expect(proxy[:bar].class).to eq(HashProxy::Proxy)
|
|
67
67
|
end
|
|
68
68
|
|
|
69
69
|
it "handles crappy method calls" do
|
|
70
70
|
proxy = HashProxy::Proxy.new({})
|
|
71
|
-
|
|
71
|
+
expect do
|
|
72
|
+
proxy.send(:'=', 'crap')
|
|
73
|
+
end.to raise_error(NoMethodError)
|
|
72
74
|
end
|
|
73
75
|
|
|
74
76
|
it "turns hash keys into method calls" do
|
|
75
77
|
hash = {foo: 'bar', baz: 'bip'}
|
|
76
78
|
proxy = HashProxy::Proxy.new(hash)
|
|
77
|
-
proxy.foo.
|
|
78
|
-
proxy.baz.
|
|
79
|
+
expect(proxy.foo).to eq('bar')
|
|
80
|
+
expect(proxy.baz).to eq('bip')
|
|
79
81
|
end
|
|
80
82
|
|
|
81
83
|
it "handles nested hashes" do
|
|
82
84
|
hash = {foo: {bar: 'barvalue', baz: 'bazvalue'}, bip: 'bipvalue'}
|
|
83
85
|
proxy = HashProxy::Proxy.new(hash)
|
|
84
|
-
proxy.foo.bar.
|
|
85
|
-
proxy.foo.baz.
|
|
86
|
-
proxy.bip.
|
|
86
|
+
expect(proxy.foo.bar).to eq('barvalue')
|
|
87
|
+
expect(proxy.foo.baz).to eq('bazvalue')
|
|
88
|
+
expect(proxy.bip).to eq('bipvalue')
|
|
87
89
|
end
|
|
88
90
|
|
|
89
91
|
it "handles string keys" do
|
|
90
92
|
hash = {'foo' => 'bar', 'baz' => 'bip'}
|
|
91
93
|
proxy = HashProxy::Proxy.new(hash)
|
|
92
|
-
proxy.foo.
|
|
93
|
-
proxy.baz.
|
|
94
|
+
expect(proxy.foo).to eq('bar')
|
|
95
|
+
expect(proxy.baz).to eq('bip')
|
|
94
96
|
end
|
|
95
97
|
|
|
96
98
|
it "handles simple arrays" do
|
|
97
99
|
hash = {'foo' => 'bar', 'arr1' => [1,2,3], 'baz' => 'bip'}
|
|
98
100
|
proxy = HashProxy::Proxy.new(hash)
|
|
99
|
-
proxy.arr1.
|
|
101
|
+
expect(proxy.arr1).to eq([1,2,3])
|
|
100
102
|
end
|
|
101
103
|
|
|
102
104
|
it "handles complicated arrays" do
|
|
103
105
|
hash = {'foo' => 'bar', 'arr1' => [{'subkey' => 'subkeyval', 'more' => 'moreval'}, 3, {'subkey' => 'subkeyval2', 'more' => 'moreval2'}], 'baz' => 'bip'}
|
|
104
106
|
proxy = HashProxy::Proxy.new(hash)
|
|
105
|
-
proxy.arr1.first.subkey.
|
|
106
|
-
proxy.arr1.last.subkey.
|
|
107
|
-
proxy.arr1[1].
|
|
107
|
+
expect(proxy.arr1.first.subkey).to eq('subkeyval')
|
|
108
|
+
expect(proxy.arr1.last.subkey).to eq('subkeyval2')
|
|
109
|
+
expect(proxy.arr1[1]).to eq(3)
|
|
108
110
|
end
|
|
109
111
|
|
|
110
112
|
it "should not convert values if nothing is referenced" do
|
|
111
113
|
hash = {'foo' => 'bar', 'arr1' => [1,2,3], 'baz' => 'bip'}
|
|
112
114
|
proxy = HashProxy::Proxy.new(hash)
|
|
113
|
-
HashProxy::Proxy.
|
|
115
|
+
expect(HashProxy::Proxy).to_not receive(:convert_value)
|
|
114
116
|
proxy.to_s
|
|
115
117
|
end
|
|
116
118
|
|
|
117
119
|
it "should convert values if they are referenced" do
|
|
118
120
|
hash = {foo: 'bar', baz: 'bip'}
|
|
119
121
|
proxy = HashProxy::Proxy.new(hash)
|
|
120
|
-
proxy.
|
|
121
|
-
proxy.foo.
|
|
122
|
+
expect(proxy).to receive(:convert_value).once.with('bar').and_return('bar')
|
|
123
|
+
expect(proxy.foo).to eq('bar')
|
|
122
124
|
end
|
|
123
125
|
|
|
124
126
|
it "can be created using the factory method" do
|
|
125
127
|
hash = {foo: 'bar', baz: 'bip'}
|
|
126
128
|
proxy = HashProxy.create_from(hash)
|
|
127
|
-
proxy.foo.
|
|
129
|
+
expect(proxy.foo).to eq('bar')
|
|
128
130
|
end
|
|
129
131
|
|
|
130
132
|
it "handles keys that do not exist" do
|
|
131
133
|
hash = {foo: 'bar', baz: 'bip'}
|
|
132
134
|
proxy = HashProxy.create_from(hash)
|
|
133
|
-
proxy.key.does.not.exist.to_s.
|
|
134
|
-
proxy.key.does.not.exist.nil
|
|
135
|
-
proxy.key.does.not.exist.blank
|
|
136
|
-
proxy.key.does.not.exist.empty
|
|
137
|
-
proxy.key.does.not.exist.to_a.
|
|
135
|
+
expect(proxy.key.does.not.exist.to_s).to eq('')
|
|
136
|
+
expect(proxy.key.does.not.exist.nil?).to eq(true)
|
|
137
|
+
expect(proxy.key.does.not.exist.blank?).to eq(true)
|
|
138
|
+
expect(proxy.key.does.not.exist.empty?).to eq(true)
|
|
139
|
+
expect(proxy.key.does.not.exist.to_a).to eq([])
|
|
138
140
|
end
|
|
139
141
|
|
|
140
142
|
describe "json conversion" do
|
|
@@ -142,27 +144,27 @@ describe HashProxy do
|
|
|
142
144
|
it "should work when no keys are converted" do
|
|
143
145
|
hash = {foo: 'bar', baz: {subkey: 'sub1', subkey2: 'sub2'}}
|
|
144
146
|
proxy = HashProxy.create_from hash
|
|
145
|
-
proxy.to_json.
|
|
147
|
+
expect(proxy.to_json).to eq(hash.to_json)
|
|
146
148
|
end
|
|
147
149
|
it "should work when normal value has been converted" do
|
|
148
150
|
orig = {foo: 'bar', baz: {subkey: 'sub1', subkey2: 'sub2'}}
|
|
149
151
|
hash = Marshal.load(Marshal.dump(orig))
|
|
150
152
|
proxy = HashProxy.create_from hash
|
|
151
|
-
proxy.foo.
|
|
153
|
+
expect(proxy.foo).to eq('bar')
|
|
152
154
|
# Need to parse back to ruby arrays so we can use the ruby == operator
|
|
153
155
|
# to compare
|
|
154
|
-
JSON.parse(proxy.to_json).
|
|
156
|
+
expect(JSON.parse(proxy.to_json)).to eq(JSON.parse(orig.to_json))
|
|
155
157
|
end
|
|
156
158
|
it "should work when nested value has been converted" do
|
|
157
159
|
orig = {foo: 'bar', baz: {subkey: 'sub1', subkey2: 'sub2'}}
|
|
158
160
|
hash = Marshal.load(Marshal.dump(orig))
|
|
159
161
|
proxy = HashProxy.create_from hash
|
|
160
162
|
proxy.baz.each do |key, val|
|
|
161
|
-
orig[:baz][key].
|
|
163
|
+
expect(orig[:baz][key]).to eq(val)
|
|
162
164
|
end
|
|
163
165
|
# Need to parse back to ruby arrays so we can use the ruby == operator
|
|
164
166
|
# to compare
|
|
165
|
-
JSON.parse(proxy.to_json).
|
|
167
|
+
expect(JSON.parse(proxy.to_json)).to eq(JSON.parse(orig.to_json))
|
|
166
168
|
end
|
|
167
169
|
end
|
|
168
170
|
|
data/version.txt
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
0.
|
|
1
|
+
1.0.0
|
metadata
CHANGED
|
@@ -1,126 +1,46 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: hash-proxy
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
5
|
-
prerelease:
|
|
4
|
+
version: 1.0.0
|
|
6
5
|
platform: ruby
|
|
7
6
|
authors:
|
|
8
7
|
- Douglas A. Seifert
|
|
9
8
|
autorequire:
|
|
10
9
|
bindir: bin
|
|
11
10
|
cert_chain: []
|
|
12
|
-
date:
|
|
11
|
+
date: 2022-12-27 00:00:00.000000000 Z
|
|
13
12
|
dependencies:
|
|
14
13
|
- !ruby/object:Gem::Dependency
|
|
15
14
|
name: bones
|
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
|
17
|
-
none: false
|
|
18
16
|
requirements:
|
|
19
|
-
- -
|
|
17
|
+
- - "~>"
|
|
20
18
|
- !ruby/object:Gem::Version
|
|
21
|
-
version: 3.
|
|
19
|
+
version: 3.9.0
|
|
22
20
|
type: :development
|
|
23
21
|
prerelease: false
|
|
24
22
|
version_requirements: !ruby/object:Gem::Requirement
|
|
25
|
-
none: false
|
|
26
23
|
requirements:
|
|
27
|
-
- -
|
|
24
|
+
- - "~>"
|
|
28
25
|
- !ruby/object:Gem::Version
|
|
29
|
-
version: 3.
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
none: false
|
|
34
|
-
requirements:
|
|
35
|
-
- - ! '>='
|
|
36
|
-
- !ruby/object:Gem::Version
|
|
37
|
-
version: 2.0.1
|
|
38
|
-
type: :development
|
|
39
|
-
prerelease: false
|
|
40
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
41
|
-
none: false
|
|
42
|
-
requirements:
|
|
43
|
-
- - ! '>='
|
|
44
|
-
- !ruby/object:Gem::Version
|
|
45
|
-
version: 2.0.1
|
|
46
|
-
- !ruby/object:Gem::Dependency
|
|
47
|
-
name: bones-git
|
|
48
|
-
requirement: !ruby/object:Gem::Requirement
|
|
49
|
-
none: false
|
|
50
|
-
requirements:
|
|
51
|
-
- - ! '>='
|
|
52
|
-
- !ruby/object:Gem::Version
|
|
53
|
-
version: 1.3.0
|
|
54
|
-
type: :development
|
|
55
|
-
prerelease: false
|
|
56
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
57
|
-
none: false
|
|
58
|
-
requirements:
|
|
59
|
-
- - ! '>='
|
|
60
|
-
- !ruby/object:Gem::Version
|
|
61
|
-
version: 1.3.0
|
|
62
|
-
- !ruby/object:Gem::Dependency
|
|
63
|
-
name: bones-yard
|
|
64
|
-
requirement: !ruby/object:Gem::Requirement
|
|
65
|
-
none: false
|
|
66
|
-
requirements:
|
|
67
|
-
- - ! '>='
|
|
68
|
-
- !ruby/object:Gem::Version
|
|
69
|
-
version: 1.0.0
|
|
70
|
-
type: :development
|
|
71
|
-
prerelease: false
|
|
72
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
73
|
-
none: false
|
|
74
|
-
requirements:
|
|
75
|
-
- - ! '>='
|
|
76
|
-
- !ruby/object:Gem::Version
|
|
77
|
-
version: 1.0.0
|
|
78
|
-
- !ruby/object:Gem::Dependency
|
|
79
|
-
name: redcarpet
|
|
80
|
-
requirement: !ruby/object:Gem::Requirement
|
|
81
|
-
none: false
|
|
82
|
-
requirements:
|
|
83
|
-
- - ! '>='
|
|
84
|
-
- !ruby/object:Gem::Version
|
|
85
|
-
version: 2.2.2
|
|
86
|
-
type: :development
|
|
87
|
-
prerelease: false
|
|
88
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
89
|
-
none: false
|
|
90
|
-
requirements:
|
|
91
|
-
- - ! '>='
|
|
92
|
-
- !ruby/object:Gem::Version
|
|
93
|
-
version: 2.2.2
|
|
94
|
-
- !ruby/object:Gem::Dependency
|
|
95
|
-
name: bones
|
|
96
|
-
requirement: !ruby/object:Gem::Requirement
|
|
97
|
-
none: false
|
|
98
|
-
requirements:
|
|
99
|
-
- - ! '>='
|
|
100
|
-
- !ruby/object:Gem::Version
|
|
101
|
-
version: 3.8.0
|
|
102
|
-
type: :development
|
|
103
|
-
prerelease: false
|
|
104
|
-
version_requirements: !ruby/object:Gem::Requirement
|
|
105
|
-
none: false
|
|
106
|
-
requirements:
|
|
107
|
-
- - ! '>='
|
|
108
|
-
- !ruby/object:Gem::Version
|
|
109
|
-
version: 3.8.0
|
|
110
|
-
description: ! 'An object that proxies method calls to a Hash object as hash key lookups.
|
|
111
|
-
|
|
112
|
-
Handles nested hashes and arrays.'
|
|
26
|
+
version: 3.9.0
|
|
27
|
+
description: |-
|
|
28
|
+
An object that proxies method calls to a Hash object as hash key lookups.
|
|
29
|
+
Handles nested hashes and arrays.
|
|
113
30
|
email: doug@dseifert.net
|
|
114
31
|
executables: []
|
|
115
32
|
extensions: []
|
|
116
|
-
extra_rdoc_files:
|
|
33
|
+
extra_rdoc_files:
|
|
34
|
+
- History.txt
|
|
117
35
|
files:
|
|
118
|
-
- .bnsignore
|
|
119
|
-
- .gitignore
|
|
120
|
-
- .
|
|
36
|
+
- ".bnsignore"
|
|
37
|
+
- ".gitignore"
|
|
38
|
+
- ".ruby-gemset"
|
|
39
|
+
- ".ruby-version"
|
|
121
40
|
- Gemfile
|
|
122
41
|
- Gemfile.lock
|
|
123
42
|
- History.txt
|
|
43
|
+
- LICENSE
|
|
124
44
|
- README.md
|
|
125
45
|
- Rakefile
|
|
126
46
|
- lib/hash_proxy.rb
|
|
@@ -130,30 +50,28 @@ files:
|
|
|
130
50
|
- spec/spec_helper.rb
|
|
131
51
|
- version.txt
|
|
132
52
|
homepage: https://github.com/seifertd/hash-proxy
|
|
133
|
-
licenses:
|
|
53
|
+
licenses:
|
|
54
|
+
- MIT
|
|
55
|
+
metadata: {}
|
|
134
56
|
post_install_message:
|
|
135
|
-
rdoc_options:
|
|
57
|
+
rdoc_options:
|
|
58
|
+
- "--main"
|
|
59
|
+
- README.md
|
|
136
60
|
require_paths:
|
|
137
61
|
- lib
|
|
138
62
|
required_ruby_version: !ruby/object:Gem::Requirement
|
|
139
|
-
none: false
|
|
140
63
|
requirements:
|
|
141
|
-
- -
|
|
64
|
+
- - ">="
|
|
142
65
|
- !ruby/object:Gem::Version
|
|
143
66
|
version: '0'
|
|
144
|
-
segments:
|
|
145
|
-
- 0
|
|
146
|
-
hash: -4040495455569849470
|
|
147
67
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
|
148
|
-
none: false
|
|
149
68
|
requirements:
|
|
150
|
-
- -
|
|
69
|
+
- - ">="
|
|
151
70
|
- !ruby/object:Gem::Version
|
|
152
71
|
version: '0'
|
|
153
72
|
requirements: []
|
|
154
|
-
|
|
155
|
-
rubygems_version: 1.8.24
|
|
73
|
+
rubygems_version: 3.3.7
|
|
156
74
|
signing_key:
|
|
157
|
-
specification_version:
|
|
75
|
+
specification_version: 4
|
|
158
76
|
summary: An object that proxies method calls to a Hash object as hash key lookups.
|
|
159
77
|
test_files: []
|
data/.rvmrc
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
rvm gemset use hash-proxy --create
|