class Oat::Adapter

Attributes

data[R]
serializer[R]

Public Class Methods

new(serializer) click to toggle source
# File lib/oat/adapter.rb, line 5
def initialize(serializer)
  @serializer = serializer
  @data = Hash.new{|h,k| h[k] = {}}
end

Public Instance Methods

to_hash() click to toggle source
# File lib/oat/adapter.rb, line 10
def to_hash
  data
end

Protected Instance Methods

serializer_from_block_or_class(obj, serializer_class = nil, context_options = {}, &block) click to toggle source
# File lib/oat/adapter.rb, line 24
def serializer_from_block_or_class(obj, serializer_class = nil, context_options = {}, &block)
  return nil if obj.nil?

  if block_given?
    serializer_class = Class.new(serializer.class)
    serializer_class.schemas = []
    serializer_class.schema_methods = []
    serializer_class.adapter self.class
    s = serializer_class.new(obj, serializer.context.merge(context_options), serializer.adapter_class, serializer.top)
    serializer.instance_exec(obj, s, &block)
    s
  else
    serializer_class.new(obj, serializer.context.merge(context_options), serializer.adapter_class, serializer.top)
  end
end
yield_props(&block) click to toggle source
# File lib/oat/adapter.rb, line 18
def yield_props(&block)
  props = Props.new
  serializer.instance_exec(props, &block)
  props.to_hash
end