class EntitySchema::Transformers::Object

Private Instance Methods

default_mapper() click to toggle source
# File lib/entity_schema/transformers/object.rb, line 34
def default_mapper
  ->(hash) { hash }
end
mapper(map_to, map_method) click to toggle source
# File lib/entity_schema/transformers/object.rb, line 21
def mapper(map_to, map_method)
  return if map_to.nil?
  map_method ||= :new

  lambda do |hash|
    if map_to.is_a?(Class)
      map_to.public_send(map_method, hash)
    else
      Object.const_get(map_to).public_send(map_method, hash)
    end
  end
end
serializer(opts) click to toggle source
# File lib/entity_schema/transformers/object.rb, line 38
def serializer(opts)
  map_method = opts[:serialize] || :to_h
  ->(object) { object.public_send(map_method) }
end
transform_options(o) click to toggle source
# File lib/entity_schema/transformers/object.rb, line 10
def transform_options(o)
  super.merge!(
    mapper:     find(callable(o[:mapper]),
                     owner_meth(o[:mapper]),
                     mapper(o[:map_to], o[:map_method]),
                     default_mapper),
    serializer: find(o[:serializer],
                     serializer(o))
  )
end