class ThinkingSphinx::ActiveRecord::Depolymorph::OverriddenReflection
This overriding approach is only available in Rails 5.2+. This behaviour was preceded by AssociationReflection for Rails 4.1-5.1.
Public Class Methods
overridden_classes()
click to toggle source
# File lib/thinking_sphinx/active_record/depolymorph/overridden_reflection.rb, line 28 def self.overridden_classes @overridden_classes ||= {} end
Public Instance Methods
call()
click to toggle source
# File lib/thinking_sphinx/active_record/depolymorph/overridden_reflection.rb, line 32 def call klass.new name, nil, options, reflection.active_record end
Private Instance Methods
extension(reflection)
click to toggle source
# File lib/thinking_sphinx/active_record/depolymorph/overridden_reflection.rb, line 46 def extension(reflection) reflection.respond_to?(:build_join_constraint) ? BuildJoinConstraint : JoinScope end
klass()
click to toggle source
# File lib/thinking_sphinx/active_record/depolymorph/overridden_reflection.rb, line 38 def klass self.class.overridden_classes[reflection.class] ||= begin subclass = Class.new reflection.class subclass.include extension(reflection) subclass end end