rbbt-util 5.21.112 → 5.21.113

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 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