mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
5cf36e2ea2
Allows aliasing, predications, ordering, and various other functions on `And` and `Case` nodes. This brings them in line with other nodes like `Binary` and `Unary`.
32 lines
527 B
Ruby
32 lines
527 B
Ruby
# frozen_string_literal: true
|
|
|
|
module Arel # :nodoc: all
|
|
module Nodes
|
|
class And < Arel::Nodes::NodeExpression
|
|
attr_reader :children
|
|
|
|
def initialize(children)
|
|
super()
|
|
@children = children
|
|
end
|
|
|
|
def left
|
|
children.first
|
|
end
|
|
|
|
def right
|
|
children[1]
|
|
end
|
|
|
|
def hash
|
|
children.hash
|
|
end
|
|
|
|
def eql?(other)
|
|
self.class == other.class &&
|
|
self.children == other.children
|
|
end
|
|
alias :== :eql?
|
|
end
|
|
end
|
|
end
|