aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/associations/class_methods/join_dependency/join_base.rb
blob: ed05003f661556be0e3d4f5fc477a7786eb600c4 (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
module ActiveRecord
  module Associations
    module ClassMethods
      class JoinDependency # :nodoc:
        class JoinBase < JoinPart # :nodoc:
          # Extra joins provided when the JoinDependency was created
          attr_reader :table_joins

          def initialize(active_record, joins = nil)
            super(active_record)
            @table_joins = joins
          end

          def ==(other)
            other.class == self.class &&
              other.active_record == active_record
          end

          def aliased_prefix
            "t0"
          end

          def table
            Arel::Table.new(table_name, :engine => arel_engine, :columns => active_record.columns)
          end

          def aliased_table_name
            active_record.table_name
          end
        end
      end
    end
  end
end