clean-hash 0.5.6 → 0.5.8

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