Sha256: 2fe020917b9e269e9046ba93e482df5413126350094546cf0be21a49d4e92cd5

Contents?: true

Size: 565 Bytes

Versions: 6

Compression:

Stored size: 565 Bytes

Contents

module RecordFilter
  class Join
    attr_reader :left_table, :right_table

    def initialize(left_table, right_table, join_predicate)
      @left_table, @right_table, @join_predicate =
        left_table, right_table, join_predicate
    end

    def to_sql
      predicate_sql = @join_predicate.map do |left_column, right_column|
        "#{@left_table.table_alias}.#{left_column} = #{@right_table.table_alias}.#{right_column}"
      end * ' AND '
      "INNER JOIN #{@right_table.table_name} AS #{@right_table.table_alias} ON #{predicate_sql}"
    end
  end
end

Version data entries

6 entries across 6 versions & 2 rubygems

Version Path
aub-record_filter-0.1.0 lib/record_filter/join.rb
aub-record_filter-0.1.1 lib/record_filter/join.rb
aub-record_filter-0.1.2 lib/record_filter/join.rb
outoftime-record_filter-0.1.0 lib/record_filter/join.rb
outoftime-record_filter-0.1.1 lib/record_filter/join.rb
outoftime-record_filter-0.1.3 lib/record_filter/join.rb