clean-hash 0.5.6 → 0.5.8

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
  SHA256:
3
- metadata.gz: 84f415c67aa006d310866fe28e22f53b3da065d6004e493a97d1d2bf050f89bf
4
- data.tar.gz: d4e2f15932bf3d882711ab9ee8f2f4a569371265c05f539e22652b36a4fec915
3
+ metadata.gz: 21c29289e7cd2fa8015e4e907d8d45fa1a4bb478b90df685ae15e06bf0ac1352
4
+ data.tar.gz: ab4aa36aa08a93f6f99df04bc8ca75869d95da16a3581b27d1d30e2b720b02b3
5
5
  SHA512:
6
- metadata.gz: 5e9f4a7753cc189f0767e70a7aa42757ec4d3574c01bc2d27fcb501f575c19c87819fbc0f2380e8d0c7e5bbcbc0b02381d187d4bc940df99cf27929f3389cd91
7
- data.tar.gz: '035194034f069e8917a1d64474546d43ceb567aec92a7a7d2d02865dc10407c6ef042e80f65d85f9ca48ff420e4856b1850d05b7d418686a88de1362194b8604'
6
+ metadata.gz: 8ecd25fcb3136ad9d3d2bf49ce8ed89db6b64f62e631264da6f434b0f28946d2bfd93140884bdbb6b65dc2879752f9dffccd59ee02bd40c0605a797aa352ee08
7
+ data.tar.gz: 87f8b6456eb82c6e366f803ba7a17702d49542cdc78058db21ce17777324fe7cda1f9f246a665ed5369f7314c1822718708f0611d3573b9015102cf6408f1370
data/.version CHANGED
@@ -1 +1 @@
1
- 0.5.6
1
+ 0.5.8
@@ -14,12 +14,22 @@ class CleanHash
14
14
  [@data]
15
15
  end
16
16
 
17
+ # overload key ruby method because it is common hash key name
18
+ # still accessible via to_h.key
19
+ def key
20
+ self[:key]
21
+ end
22
+
17
23
  def key? name
18
- @data.key?(name.to_sym) || @data.key?(name.to_s)
24
+ @data.key?(name) || @data.key?(name.to_s) || (name.respond_to?(:to_sym) ? @data.key?(name.to_sym) : nil)
19
25
  end
20
26
 
21
27
  def delete key
22
- @data.delete(key.to_sym) || @data.delete(key.to_s)
28
+ self[key].tap do |out|
29
+ @data.delete(key)
30
+ @data.delete(key.to_s)
31
+ @data.delete(key.to_sym) if key.respond_to?(:to_sym)
32
+ end
23
33
  end
24
34
 
25
35
  def to_h
@@ -31,8 +41,9 @@ class CleanHash
31
41
  end
32
42
 
33
43
  def [] key
34
- data = @data[key.to_sym]
35
- data = @data[key.to_s] if data.nil?
44
+ data = @data[key]
45
+ data = @data[key.to_s] if data.nil? && !key.is_a?(String)
46
+ data = @data[key.to_sym] if data.nil? && key.respond_to?(:to_sym)
36
47
 
37
48
  if data.is_a?(Hash)
38
49
  self.class.new data
@@ -42,13 +53,12 @@ class CleanHash
42
53
  end
43
54
 
44
55
  def []= key, value
45
- key = key.to_sym unless key.class == Symbol
46
- @data.delete(key.to_s)
56
+ delete key
47
57
  @data[key] = value
48
58
  end
49
59
 
50
60
  def method_missing name, *args, &block
51
- return @data.send(name, *args, &block) if !@data[name] && @data.respond_to?(name)
61
+ return @data.send(name, *args, &block) if @data.respond_to?(name)
52
62
 
53
63
  m = name.to_s
54
64
 
@@ -56,11 +66,7 @@ class CleanHash
56
66
  m = m.sub('=', '')
57
67
  self[m] = args.first
58
68
  elsif m.end_with?('?')
59
- begin
60
- !self[m.sub('?', '')].nil?
61
- rescue NoMethodError
62
- false
63
- end
69
+ !self[m.sub('?', '')].nil?
64
70
  elsif block
65
71
  self[m] = block
66
72
  else
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: clean-hash
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.6
4
+ version: 0.5.8
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dino Reic
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2020-04-08 00:00:00.000000000 Z
11
+ date: 2020-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: hashie