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 build_output(dto)
def build_output(dto) if dto == Hash || (defined?(OpenStruct) && dto == OpenStruct) ReeMapper::HashOutput.new(dto) elsif dto == Struct ReeMapper::StructOutput.new else ReeMapper::ObjectOutput.new(dto) end end
def dto
def dto output.dto end
def dto=(dto)
def dto=(dto) @output = build_output(dto) nil 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:, dto:, always_optional:)
def initialize(method:, dto:, always_optional:) @method = method @output = build_output(dto) @always_optional = always_optional end
def initialize_dup(_orig)
def initialize_dup(_orig) @output = @output.dup super end
def prepare_dto(field_names)
def prepare_dto(field_names) output.prepare_dto(field_names) end