Sha256: 5749cdf0e84325931591359c554a26f1ac54800a6bf423bc19178734012c579c

Contents?: true

Size: 925 Bytes

Versions: 66

Compression:

Stored size: 925 Bytes

Contents

# frozen_string_literal: true

require 'active_record/reflection'

module ActiveRecord
  module Reflection
    class AbstractReflection
      def join_scope(table, foreign_klass)
        predicate_builder = predicate_builder(table)
        scope_chain_items = join_scopes(table, predicate_builder)
        klass_scope       = klass_join_scope(table, predicate_builder)

        if type
          if options[:strict_primary_type]
            klass_scope.where!(type => BetterRecord::PolymorphicOverride.polymorphic_value(foreign_klass, options))
          else
            klass_scope.where!(type => BetterRecord::PolymorphicOverride.all_types(foreign_klass))
          end
        end

        scope_chain_items.inject(klass_scope, &:merge!)
      end
    end

    class RuntimeReflection < AbstractReflection # :nodoc:
      delegate :scope, :type, :constraints, :get_join_keys, :options, to: :@reflection
    end
  end
end

Version data entries

66 entries across 66 versions & 1 rubygems

Version Path
better_record-0.22.3 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.21.3 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.22.2 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.22.0 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.21.2 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.20.2 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.19.10 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.19.9 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.19.8 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.19.7 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.19.6 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.19.4 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.19.2 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.19.1 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.19.0 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.18.3 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.18.2 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.18.1 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.18.0 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb
better_record-0.17.9 lib/better_record/concerns/active_record_extensions/reflection_extensions.rb