rbbt-util 5.21.112 → 5.21.113

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
  SHA1:
3
- metadata.gz: ab22a14dd533bbe47f20ee1c4c72efc7a6b41003
4
- data.tar.gz: 75b85c1fc2b3297b002df6ab02a3347b68f58a8c
3
+ metadata.gz: 51f95ac687a3b34bd02b32a6a4c542ee6fb3a169
4
+ data.tar.gz: bc322aceaa669319865fb86b665f2aafb09e9065
5
5
  SHA512:
6
- metadata.gz: cd02e01845df02b2b6f087c7b8247e82eecb32ed37c718514f7a18e89a027a8e0e61fd23d31e336bf58694c5d6423caab69083b8c7be9753f5f37262efc26bc4
7
- data.tar.gz: 329cb2523fd19d1e74a229175f8784389f85a4fe8f9bb2fd3117c78df128d2cccf81448d322f1a0b34f07223637c74e1ccc55ccabc3b9baf1ee5aea2c83a626d
6
+ metadata.gz: 536e9dd8b7e012ce0d7c20ec55d0bf7a504c314eb5644a3616eddfcde1d365f5406ede03e10f51705fea79f60f0c7e6c80701f61d3620902e2042d1412556772
7
+ data.tar.gz: d9633a0deb661e98b5586ead07295fb7543d7eb5f6b528a09eb6a44857aed19af0dddbaf932202817ca78c6a4a6a05e390e5b138f13092a8dc553fcb28bf2564
@@ -62,3 +62,35 @@ module IndiferentHash
62
62
  end
63
63
  end
64
64
  end
65
+
66
+ module CaseInsensitiveHash
67
+
68
+
69
+ def self.setup(hash)
70
+ hash.extend CaseInsensitiveHash
71
+ end
72
+
73
+ def downcase_keys
74
+ @downcase_keys ||= begin
75
+ down = {}
76
+ keys.collect{|key|
77
+ down[key.to_s.downcase] = key
78
+ }
79
+ down
80
+ end
81
+ end
82
+
83
+ def [](key, *rest)
84
+ value = super(key, *rest)
85
+ return value unless value.nil?
86
+ key_downcase = key.to_s.downcase
87
+ super(downcase_keys[key_downcase])
88
+ end
89
+
90
+ def values_at(*keys)
91
+ keys.collect do |key|
92
+ self[key]
93
+ end
94
+ end
95
+
96
+ end
@@ -574,4 +574,17 @@ EOF
574
574
  assert Misc.match_fields(f1, f3)
575
575
  assert Misc.match_fields(f3, f1)
576
576
  end
577
+
578
+ def test_case_insensitive
579
+ hash = {"A" => 1, :b => 2, "c" => 3}
580
+ CaseInsensitiveHash.setup hash
581
+
582
+ assert_equal 1, hash["A"]
583
+ assert_equal 1, hash[:A]
584
+ assert_equal 1, hash[:a]
585
+ assert_equal 2, hash["B"]
586
+ assert_equal 2, hash["b"]
587
+ assert_equal 1, hash[:A]
588
+ assert_equal 3, hash[:C]
589
+ end
577
590
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rbbt-util
3
3
  version: !ruby/object:Gem::Version
4
- version: 5.21.112
4
+ version: 5.21.113
5
5
  platform: ruby
6
6
  authors:
7
7
  - Miguel Vazquez