Module: Hasugar
- Included in:
- Hash
- Defined in:
- lib/hasugar.rb,
lib/hasugar/version.rb
Constant Summary collapse
- VERSION =
"0.0.1"
Instance Method Summary collapse
- #delete_keys(*keys) ⇒ Object
- #delete_keys!(*keys) ⇒ Object
- #keep_keys(*keys) ⇒ Object
- #keep_keys!(*keys) ⇒ Object
- #require_keys(*keys) ⇒ Object
- #transform(transformations) ⇒ Object
Instance Method Details
#delete_keys(*keys) ⇒ Object
39 40 41 42 43 44 45 46 47 |
# File 'lib/hasugar.rb', line 39 def delete_keys(*keys) _dup = dup keys.flatten.each do |k| _dup.delete(k) end _dup end |
#delete_keys!(*keys) ⇒ Object
31 32 33 34 35 36 37 |
# File 'lib/hasugar.rb', line 31 def delete_keys!(*keys) keys.flatten.each do |k| delete(k) end self end |
#keep_keys(*keys) ⇒ Object
25 26 27 28 29 |
# File 'lib/hasugar.rb', line 25 def keep_keys(*keys) keys_to_delete = self.keys - keys.flatten delete_keys(keys_to_delete) end |
#keep_keys!(*keys) ⇒ Object
19 20 21 22 23 |
# File 'lib/hasugar.rb', line 19 def keep_keys!(*keys) keys_to_delete = self.keys - keys.flatten delete_keys!(keys_to_delete) end |
#require_keys(*keys) ⇒ Object
49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 |
# File 'lib/hasugar.rb', line 49 def require_keys(*keys) all_keys = keys.all? { |k| if k.class == Symbol self.key? k elsif k.class == Hash k.keys.all? { |i_k| self[i_k].require_keys(k[i_k]) } elsif k.class == Array require_keys(*k) else false end } all_keys end |
#transform(transformations) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 |
# File 'lib/hasugar.rb', line 5 def transform(transformations) _dup = dup transformations.each do |k, v| if v.class == Hash _dup[k] = _dup[k].transform(v) else _dup[v] = _dup.delete(k) if _dup[k] end end _dup end |