insensitive_hash 0.3.2 → 0.3.3
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 +15 -0
- data/lib/insensitive_hash/insensitive_hash.rb +7 -7
- data/lib/insensitive_hash/version.rb +1 -1
- data/test/test_insensitive_hash.rb +10 -1
- metadata +5 -10
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
NmNkMzgxNTY2ZGY4NTY4MWI4YTYzNGEyMDJlMjQwZDE1NGFlZDMwZg==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
YmE3OTMxYWFmZTJmZDcyZWM4YTcwYjU3MTI4NmRiMTY4NjFjMzY3NQ==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
ZjkxNTNkMTFiZDc4ZjUxN2M2Y2EyNjZjMDIxYzY1YjY0MzFjZjg0YzJjOWEx
|
10
|
+
MjZiZTg1YWFkYzlkN2YwZmYyYTBhY2Y0ZmI2ZDg3YzgyZTBiZjVmMzc4OWY5
|
11
|
+
YTNkZjBiNWZhZjcwYjJmOTYyYTI1YWU4NzU3ODg5MTY2M2YyMjE=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
ZmJjZGM3OWM1ODAzN2Y1OTJiYjY2MjNmZTJmYjlkZTViN2NjMTM5ODhiN2Vh
|
14
|
+
ZTNjYWVkMWQzOTgyNzgyYTViYTY4ZTgzMDRkYzVjMzkxZTMwZjgwYTQzODU5
|
15
|
+
MTkyYjhmYTczYTkxN2E3MzZiNjI2NmY4NDVmYjg0M2RkNjc0NGY=
|
@@ -21,7 +21,7 @@ class InsensitiveHash < Hash
|
|
21
21
|
def initialize default = nil, &block
|
22
22
|
if block_given?
|
23
23
|
raise ArgumentError.new('wrong number of arguments') unless default.nil?
|
24
|
-
super
|
24
|
+
super(&block)
|
25
25
|
else
|
26
26
|
super
|
27
27
|
end
|
@@ -53,7 +53,7 @@ class InsensitiveHash < Hash
|
|
53
53
|
clear
|
54
54
|
@encoder = prc
|
55
55
|
kvs.each do |pair|
|
56
|
-
store
|
56
|
+
store(*pair)
|
57
57
|
end
|
58
58
|
|
59
59
|
prc
|
@@ -69,7 +69,7 @@ class InsensitiveHash < Hash
|
|
69
69
|
# @see http://www.ruby-doc.org/core-1.9.3/Hash.html Hash
|
70
70
|
def self.[] *init
|
71
71
|
h = Hash[*init]
|
72
|
-
|
72
|
+
self.new.tap do |ih|
|
73
73
|
ih.merge_recursive! h
|
74
74
|
end
|
75
75
|
end
|
@@ -103,7 +103,7 @@ class InsensitiveHash < Hash
|
|
103
103
|
|
104
104
|
# @see http://www.ruby-doc.org/core-1.9.3/Hash.html Hash
|
105
105
|
def merge other_hash
|
106
|
-
|
106
|
+
self.class.new.tap do |ih|
|
107
107
|
ih.replace self
|
108
108
|
ih.merge! other_hash
|
109
109
|
end
|
@@ -162,7 +162,7 @@ class InsensitiveHash < Hash
|
|
162
162
|
# @see http://www.ruby-doc.org/core-1.9.3/Hash.html Hash
|
163
163
|
def fetch *args, &block
|
164
164
|
args[0] = lookup_key(args[0]) if args.first
|
165
|
-
super
|
165
|
+
super(*args, &block)
|
166
166
|
end
|
167
167
|
|
168
168
|
# @see http://www.ruby-doc.org/core-1.9.3/Hash.html Hash
|
@@ -187,13 +187,13 @@ private
|
|
187
187
|
|
188
188
|
def wrap value
|
189
189
|
case value
|
190
|
-
when InsensitiveHash
|
190
|
+
when InsensitiveHash, self.class
|
191
191
|
value.tap { |ih|
|
192
192
|
ih.safe = safe?
|
193
193
|
ih.encoder = encoder
|
194
194
|
}
|
195
195
|
when Hash
|
196
|
-
|
196
|
+
self.class.new.tap { |ih|
|
197
197
|
ih.safe = safe?
|
198
198
|
ih.encoder = encoder
|
199
199
|
ih.merge_recursive!(value)
|
@@ -1,3 +1,4 @@
|
|
1
|
+
$VERBOSE = true
|
1
2
|
require 'rubygems'
|
2
3
|
require 'bundler'
|
3
4
|
Bundler.setup(:default, :development)
|
@@ -620,5 +621,13 @@ class TestInsensitiveHash < Test::Unit::TestCase
|
|
620
621
|
assert_equal :d, ih[:any][:any][:any]
|
621
622
|
end
|
622
623
|
end
|
623
|
-
end
|
624
624
|
|
625
|
+
class MyInsensitiveHash < InsensitiveHash
|
626
|
+
end
|
627
|
+
|
628
|
+
def test_subclassing
|
629
|
+
mih = MyInsensitiveHash[{ "a" => { "b" => 3 } }]
|
630
|
+
assert_instance_of MyInsensitiveHash, mih
|
631
|
+
assert_instance_of MyInsensitiveHash, mih["a"]
|
632
|
+
end
|
633
|
+
end
|
metadata
CHANGED
@@ -1,20 +1,18 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: insensitive_hash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.3.
|
5
|
-
prerelease:
|
4
|
+
version: 0.3.3
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Junegunn Choi
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
10
|
cert_chain: []
|
12
|
-
date: 2013-
|
11
|
+
date: 2013-09-01 00:00:00.000000000 Z
|
13
12
|
dependencies:
|
14
13
|
- !ruby/object:Gem::Dependency
|
15
14
|
name: test-unit
|
16
15
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
16
|
requirements:
|
19
17
|
- - ! '>='
|
20
18
|
- !ruby/object:Gem::Version
|
@@ -22,7 +20,6 @@ dependencies:
|
|
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
|
@@ -48,28 +45,26 @@ files:
|
|
48
45
|
- test/test_insensitive_hash.rb
|
49
46
|
homepage: https://github.com/junegunn/insensitive_hash
|
50
47
|
licenses: []
|
48
|
+
metadata: {}
|
51
49
|
post_install_message:
|
52
50
|
rdoc_options: []
|
53
51
|
require_paths:
|
54
52
|
- lib
|
55
53
|
required_ruby_version: !ruby/object:Gem::Requirement
|
56
|
-
none: false
|
57
54
|
requirements:
|
58
55
|
- - ! '>='
|
59
56
|
- !ruby/object:Gem::Version
|
60
57
|
version: '0'
|
61
58
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
62
|
-
none: false
|
63
59
|
requirements:
|
64
60
|
- - ! '>='
|
65
61
|
- !ruby/object:Gem::Version
|
66
62
|
version: '0'
|
67
63
|
requirements: []
|
68
64
|
rubyforge_project: insensitive_hash
|
69
|
-
rubygems_version:
|
65
|
+
rubygems_version: 2.0.7
|
70
66
|
signing_key:
|
71
|
-
specification_version:
|
67
|
+
specification_version: 4
|
72
68
|
summary: Case-insensitive Ruby Hash
|
73
69
|
test_files:
|
74
70
|
- test/test_insensitive_hash.rb
|
75
|
-
has_rdoc:
|