Module: AssociationSelection

Defined in:
lib/association_selection.rb,
lib/association_selection/version.rb,
lib/association_selection/querying.rb,
lib/association_selection/v5/relation.rb,
lib/association_selection/v6/relation.rb,
lib/association_selection/v7/relation.rb,
lib/association_selection/v5/preloader.rb

Defined Under Namespace

Modules: Delegations, Querying, V5, V6, V7

Constant Summary collapse

VERSION =
'0.1.2.1'

Class Method Summary collapse

Class Method Details

.setupObject



7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/association_selection.rb', line 7

def self.setup
  ActiveSupport.on_load(:active_record) do |base|
    base.extend AssociationSelection::Delegations
    ActiveRecord::Relation.include AssociationSelection::Querying

    if ActiveRecord.version >= Gem::Version.new('7.0')
      require_relative 'association_selection/v7/relation'
      ActiveRecord::Relation.prepend AssociationSelection::V7::Relation
    elsif ActiveRecord.version >= Gem::Version.new('6.0')
      require_relative 'association_selection/v6/relation'
      ActiveRecord::Relation.prepend AssociationSelection::V6::Relation
    else
      require_relative 'association_selection/v5/relation'
      require_relative 'association_selection/v5/preloader'
      ActiveRecord::Associations::Preloader.prepend AssociationSelection::V5::Preloader
      ActiveRecord::Relation.prepend AssociationSelection::V5::Relation
    end
  end
end