module Normalizr
Public Class Methods
denormalize!(obj, schema, id=nil)
click to toggle source
# File lib/normalizr/normalizr.rb, line 34 def self.denormalize! obj, schema, id=nil schema.keys.map do |key| if id.nil? if obj[key].is_a? Hash value = schema[key].unvisit(obj, obj[key].keys) else value = (obj[key] || []) end else value = schema[key].unvisit(obj, Array(id)) end Hash[key, value] end.reduce({}, &:merge) end
normalize!(obj, schema, opts={})
click to toggle source
# File lib/normalizr/normalizr.rb, line 5 def self.normalize! obj, schema, opts={} bag = Normalizr::Bag.new(opts) if schema.is_a? Hash schema.keys.each do |key| schema[key].visit(obj[key], bag) end else schema.visit(obj, bag) end hash = bag.to_hash if schema.is_a? Hash schema.keys.each do |key| unless hash.has_key? key if obj[key].nil? || obj[key].is_a?(Array) hash[key] = {} else hash[key] = obj[key] end end end end hash end