mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
32 lines
616 B
Ruby
32 lines
616 B
Ruby
module Arel
|
|
module Nodes
|
|
class Extract < Arel::Nodes::Unary
|
|
include Arel::Predications
|
|
|
|
attr_accessor :field
|
|
attr_accessor :alias
|
|
|
|
def initialize expr, field, aliaz = nil
|
|
super(expr)
|
|
@field = field
|
|
@alias = aliaz && SqlLiteral.new(aliaz)
|
|
end
|
|
|
|
def as aliaz
|
|
self.alias = SqlLiteral.new(aliaz)
|
|
self
|
|
end
|
|
|
|
def hash
|
|
super ^ [@field, @alias].hash
|
|
end
|
|
|
|
def eql? other
|
|
super &&
|
|
self.field == other.field &&
|
|
self.alias == other.alias
|
|
end
|
|
alias :== :eql?
|
|
end
|
|
end
|
|
end
|