class ReeMapper::MapperStrategy

def assign_value(object, field, value)

def assign_value(object, field, value)
  output.assign_value(object, field, value)
end

def build_object

def build_object
  output.build_object
end

def dto

def dto
  output.dto
end

def dto=(dto)

def dto=(dto)
  output.dto = dto
end

def get_value(obj, field)

def get_value(obj, field)
  if obj.is_a?(Hash)
    obj.key?(field.from) ? obj[field.from] : obj[field.from_as_str]
  else
    obj.public_send(field.from)
  end
end

def has_value?(obj, field)

def has_value?(obj, field)
  if obj.is_a?(Hash)
    obj.key?(field.from) || obj.key?(field.from_as_str)
  else
    obj.respond_to?(field.from)
  end
end

def initialize(method:, output:, always_optional:)

def initialize(method:, output:, always_optional:)
  @method          = method
  @output          = output
  @always_optional = always_optional
end

def output

def output
  @output
end

def output=(output)

def output=(output)
  @output = output
end