named_hash 0.1.0 → 0.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. checksums.yaml +4 -4
  2. data/lib/hash.rb +1 -0
  3. data/lib/named_hash.rb +11 -5
  4. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8b53750ff1bd05f513b147b7bbd0c8333211cd699354df4b9c098b295fa21276
4
- data.tar.gz: 215a9ff51aa2186c1fe1340eccd5afe95e017bbdd7768b3debae596ef515bf8c
3
+ metadata.gz: 950b3bc7429667f6d01cd837bf7a1f84976896df775e859f66ceb6fb0d5c75b7
4
+ data.tar.gz: 19bee391724d1c91934f1d4e2a4850509e22a2af30753ab4cbdc393c4c4a0f8f
5
5
  SHA512:
6
- metadata.gz: 9ed58ed53822adc2b2a661c7b6515853a657dffe8e84f49f615f6a8c303fdce81fa73154d6904cb4b8eea4f2bf1b99729311e69c53bd7d939a8e368a1917971a
7
- data.tar.gz: a7b13635e8905e9a7c3f9bf466fa9b1946e9fa9bf4f88c2775dbe7900e9526bb4103d99bbcbb42a9ebed24de05125f2a7e0f9d445081f9b4e1d94f570ee41bdf
6
+ metadata.gz: 2ee7a0f204f740b4eab83946a3d2515567d17cdf27fd150df0ff8f4cb3f8d0033086e269821168d24dada84dc9721515f212f3c6981472316adda60f66af348b
7
+ data.tar.gz: 416fbd6331cbb8c783d5be07602c84099317be5922392f652228138a6174dcbc7ad0851cbab0ab1c2f991edb64fb24d47cb56fe883c7fbdba16eaa7a7f4b0fff
data/lib/hash.rb CHANGED
@@ -2,5 +2,6 @@ class Hash
2
2
  def to_named_hash
3
3
  NamedHash.new(self)
4
4
  end
5
+
5
6
  alias_method :~, :to_named_hash
6
7
  end
data/lib/named_hash.rb CHANGED
@@ -1,6 +1,8 @@
1
+ require_relative 'hash'
2
+
1
3
  class NamedHash < Hash
2
4
  def initialize(hash = nil)
3
- super
5
+ super()
4
6
  if hash
5
7
  merge(hash)
6
8
  end
@@ -13,14 +15,17 @@ class NamedHash < Hash
13
15
  end
14
16
  native_set(key.to_s, value)
15
17
  end
18
+
16
19
  alias_method :native_set, :[]=
17
20
  alias_method :[]=, :set
18
21
 
19
- def [](key)
20
- check_key_type(key)
21
- super(key.to_s)
22
+ def get(key)
23
+ native_get(key.to_s)
22
24
  end
23
25
 
26
+ alias_method :native_get, :[]
27
+ alias_method :[], :get
28
+
24
29
  def merge(hash)
25
30
  hash.each do |key, value|
26
31
  set(key, value)
@@ -30,6 +35,7 @@ class NamedHash < Hash
30
35
  def to_named_hash
31
36
  self
32
37
  end
38
+
33
39
  alias :~ :to_named_hash
34
40
 
35
41
  class InvalidKeyError < StandardError
@@ -43,4 +49,4 @@ class NamedHash < Hash
43
49
  def check_key_type(key)
44
50
  raise InvalidKeyError unless (key.is_a?(String) || key.is_a?(Symbol))
45
51
  end
46
- end
52
+ end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: named_hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: '0.2'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Hampton Lintorn-Catlin <hcatlin@gmail.com>
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2024-07-09 00:00:00.000000000 Z
11
+ date: 2024-08-13 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description: A new take on HashWithIndifferentAccess
14
14
  email: hcatlin@gmail.com