Module: CommonLib::Hash
- Defined in:
- lib/common_lib/ruby/hash.rb
Overview
:nodoc:
Instance Method Summary collapse
- #deep_stringify_keys ⇒ Object
-
#delete_keys!(*keys) ⇒ Object
delete all keys in the given array and return the new hash.
-
#delete_keys_matching!(regex) ⇒ Object
delete all keys matching the given regex and return the new hash.
-
#dig(*args) ⇒ Object
params.dig(‘study_events’,se.id.to_s,‘eligible’).
Instance Method Details
#deep_stringify_keys ⇒ Object
42 43 44 45 46 47 48 |
# File 'lib/common_lib/ruby/hash.rb', line 42 def deep_stringify_keys new_hash = {} self.each do |key, value| new_hash.merge!(key.to_s => ( value.is_a?(Hash) ? value.deep_stringify_keys : value )) end new_hash # originally didn't return new_hash, which didn't work for me. returned self apparently. end |
#delete_keys!(*keys) ⇒ Object
delete all keys in the given array and return the new hash
16 17 18 19 20 21 |
# File 'lib/common_lib/ruby/hash.rb', line 16 def delete_keys!(*keys) keys.each do |k| self.delete(k) end self end |
#delete_keys_matching!(regex) ⇒ Object
delete all keys matching the given regex and return the new hash
5 6 7 8 9 10 11 12 |
# File 'lib/common_lib/ruby/hash.rb', line 5 def delete_keys_matching!(regex) self.keys.each do |k| if k.to_s =~ Regexp.new(regex) self.delete(k) end end self end |
#dig(*args) ⇒ Object
params.dig(‘study_events’,se.id.to_s,‘eligible’)
24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 |
# File 'lib/common_lib/ruby/hash.rb', line 24 def dig(*args) if args.length > 0 && self.keys.include?(args.first) key = args.shift if args.length > 0 if self[key].is_a?(Hash) self[key].dig(*args) else nil # This shouldn't ever happen end else self[key] end else nil end end |