module Polyamorous::SwappingReflectionClass

Public Instance Methods

swapping_reflection_klass(reflection, klass) { |new_reflection| ... } click to toggle source
# File lib/polyamorous/swapping_reflection_class.rb, line 3
def swapping_reflection_klass(reflection, klass)
  new_reflection = reflection.clone
  new_reflection.instance_variable_set(:@options, reflection.options.clone)
  new_reflection.options.delete(:polymorphic)
  new_reflection.instance_variable_set(:@klass, klass)
  yield new_reflection
end