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