class Rekey::Schema
Public Class Methods
new(definition)
click to toggle source
# File lib/rekey/schema.rb, line 4 def initialize definition @definition = definition end
Public Instance Methods
rekey(obj)
click to toggle source
# File lib/rekey/schema.rb, line 8 def rekey obj additions = @definition.keys.map do |key| value = @definition[key].rekey(obj) Hash[key, value] end.reduce({}, &:merge) unkeyed = @definition.keys.reduce(obj) do |acc, key| @definition[key].unkey(acc) end unkeyed = @definition.keys.map do |key| value = @definition[key].unkey(obj) end.reduce({}, &:merge) unkeyed.merge(additions) end