module Agris::XmlModel::ClassMethods

Public Instance Methods

from_json_hash(hash) click to toggle source
# File lib/agris/xml_model.rb, line 43
def from_json_hash(hash)
  Object.const_get(name).new(hash)
end
from_xml_hash(hash) click to toggle source
# File lib/agris/xml_model.rb, line 47
def from_xml_hash(hash)
  klass = Object.const_get(name)
  attribute_map =
    klass::ATTRIBUTE_NAMES
    .each_with_object({}) do |name, new_hash|
      new_hash[name.delete('_').to_s] = name
    end

  translated_hash = hash.each_with_object({}) do |(key, value), new_hash|
    attribute_name = attribute_map[key]

    new_hash[attribute_name] = value if attribute_name
    new_hash
  end

  klass.new(translated_hash)
end
pluralized_name() click to toggle source
# File lib/agris/xml_model.rb, line 65
def pluralized_name
  "#{name.split('::').last.downcase}s"
end