module Augmented::Hashes::Transformable
Public Instance Methods
transform(transforms)
click to toggle source
# File lib/augmented/hashes/transformable.rb, line 8 def transform transforms Helpers.validate! transforms transforms.each_pair.with_object({}) do |(key, procable), new_hash| value = self[key] if procable.kind_of?(Hash) && value.kind_of?(Hash) new_hash[key] = value.transform procable elsif value.respond_to? :each new_hash[key] = value.map{ |thing| thing.transform procable } else new_hash[key] = Helpers.make_one_proc(procable).call value end end end
transform!(transforms)
click to toggle source
# File lib/augmented/hashes/transformable.rb, line 24 def transform! transforms Helpers.validate! transforms transforms.each_pair do |key, procable| value = self[key] if procable.kind_of?(Hash) && value.kind_of?(Hash) self[key] = value.transform! procable elsif value.respond_to? :each self[key] = value.each{ |thing| thing.transform! procable } else self[key] = Helpers.make_one_proc(procable).call value end end self end