Class: Hash
Instance Method Summary
collapse
Methods included from Logging
configure_logger_for, #logger, logger_for, set_level
Instance Method Details
#convert_values(except: [], converter: Rational, convert_empty: false) ⇒ Object
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
# File 'lib/evoc/hash.rb', line 4
def convert_values(except: [],converter: Rational, convert_empty: false)
logger.debug "Converter: #{converter}, Hash: #{self}"
if except.is_a?(Array)
Hash[self.map {|k, v|
if except.include?(k)
[k,v]
else
if convert_empty
[k, converter.method(converter.to_s).call(v)]
else
if v.to_s.empty?
[k,v]
else
[k, converter.method(converter.to_s).call(v)]
end
end
end}]
else
raise ArgumentError.new, "Specify an array of keys whose values you don't want to convert"
end
end
|
#symbolize_keys ⇒ Object
32
33
34
|
# File 'lib/evoc/hash.rb', line 32
def symbolize_keys
transform_keys{ |key| key.to_sym rescue key }
end
|
#symbolize_keys! ⇒ Object
36
37
38
|
# File 'lib/evoc/hash.rb', line 36
def symbolize_keys!
transform_keys!{ |key| key.to_sym rescue key }
end
|
40
41
42
43
44
45
46
47
|
# File 'lib/evoc/hash.rb', line 40
def transform_keys
return enum_for(:transform_keys) unless block_given?
result = self.class.new
each_key do |key|
result[yield(key)] = self[key]
end
result
end
|
49
50
51
52
53
54
55
|
# File 'lib/evoc/hash.rb', line 49
def transform_keys!
return enum_for(:transform_keys!) unless block_given?
keys.each do |key|
self[yield(key)] = delete(key)
end
self
end
|