class ActiveGit::ModelParser
Public Class Methods
from_json(model, json)
click to toggle source
# File lib/active_git/model_parser.rb, line 20 def self.from_json(model, json) record = model.new attributes = json.is_a?(Hash) ? json : JSON.parse(json) attributes.each do |attr, value| if model.column_names.include?(attr.to_s) if model.columns_hash[attr.to_s].type == :datetime && value.is_a?(String) record.send("#{attr}=", Time.parse(value).utc) else record.send("#{attr}=", value) end end end record end
instances(model, json)
click to toggle source
# File lib/active_git/model_parser.rb, line 4 def self.instances(model, json) list = [from_json(model, json)] attributes = json.is_a?(Hash) ? json : JSON.parse(json) attributes.each do |attr, value| if model.reflections.has_key?(attr.to_sym) attr_model = attr.to_s.classify.constantize if value.is_a? Array value.each {|json| list = list + instances(attr_model, json)} else list = list + instances(attr_model, value) end end end list end