2010-08-23 17:44:10 -04:00
|
|
|
module Arel
|
|
|
|
module Nodes
|
2010-12-14 21:13:06 -05:00
|
|
|
class And < Arel::Nodes::Node
|
2010-12-09 17:48:28 -05:00
|
|
|
attr_reader :children
|
|
|
|
|
|
|
|
def initialize children, right = nil
|
2013-05-17 18:43:54 -04:00
|
|
|
super()
|
2010-12-09 17:48:28 -05:00
|
|
|
unless Array === children
|
|
|
|
warn "(#{caller.first}) AND nodes should be created with a list"
|
|
|
|
children = [children, right]
|
|
|
|
end
|
|
|
|
@children = children
|
|
|
|
end
|
|
|
|
|
|
|
|
def left
|
|
|
|
children.first
|
|
|
|
end
|
|
|
|
|
|
|
|
def right
|
|
|
|
children[1]
|
|
|
|
end
|
2012-08-18 22:33:25 -04:00
|
|
|
|
|
|
|
def hash
|
|
|
|
children.hash
|
|
|
|
end
|
|
|
|
|
|
|
|
def eql? other
|
|
|
|
self.class == other.class &&
|
|
|
|
self.children == other.children
|
|
|
|
end
|
|
|
|
alias :== :eql?
|
2010-08-23 17:44:10 -04:00
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|