Sha256: 16259160c23ad659b713092f430496ff89952807efec1cbe370be1f974d18c68

Contents?: true

Size: 705 Bytes

Versions: 1

Compression:

Stored size: 705 Bytes

Contents

module ActiveRecord
  class Relation
    class WhereClause
      def to_h(table_name = nil)
        equalities = predicates.grep(Arel::Nodes::Equality)

        # CPK Adds this line, because ours are coming in with AND->{EQUALITY, EQUALITY}
        equalities = predicates.grep(Arel::Nodes::And).map(&:children).flatten.grep(Arel::Nodes::Equality) if equalities.empty?

        if table_name
          equalities = equalities.select do |node|
            node.left.relation.name == table_name
          end
        end

        equalities.map { |node|
          name = node.left.name.to_s
          value = extract_node_value(node.right)
          [name, value]
        }.to_h
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
composite_primary_keys-11.0.0.rc2 lib/composite_primary_keys/relation/where_clause.rb