module Flatter::Mapper::Target::FactoryMethods

Public Instance Methods

fetch_target_from(mapper) click to toggle source
Calls superclass method
# File lib/flatter/mapper/target.rb, line 12
def fetch_target_from(mapper)
  return super unless options.key?(:target)

  target = options[:target]

  case target
  when Proc then target.(mapper.target)
  when String, Symbol
    (mapper.private_methods + mapper.protected_methods + mapper.public_methods).include?(target.to_sym) ?
      mapper.send(target) :
      fail(ArgumentError, "Cannot use target #{target.inspect} with `#{mapper.name}`. Make sure #{target.inspect} is defined for #{mapper}")
  else target
  end
end