Module: CommonLib::Hash

Defined in:
lib/common_lib/ruby/hash.rb

Overview

:nodoc:

Instance Method Summary collapse

Instance Method Details

#deep_stringify_keysObject



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