class Hash
Public Instance Methods
convert_values(except: [],converter: Rational, convert_empty: false)
click to toggle source
# 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 # don't convert empty fields to avoid side-effects # "".to_i is 0 for example 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()
click to toggle source
stolen from rails api.rubyonrails.org/classes/Hash.html
# File lib/evoc/hash.rb, line 32 def symbolize_keys transform_keys{ |key| key.to_sym rescue key } end
symbolize_keys!()
click to toggle source
# File lib/evoc/hash.rb, line 36 def symbolize_keys! transform_keys!{ |key| key.to_sym rescue key } end
transform_keys() { |key| ... }
click to toggle source
# 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
transform_keys!() { |key| ... }
click to toggle source
# 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