diff options
Diffstat (limited to 'activerecord/lib/arel/nodes/unary.rb')
-rw-r--r-- | activerecord/lib/arel/nodes/unary.rb | 44 |
1 files changed, 44 insertions, 0 deletions
diff --git a/activerecord/lib/arel/nodes/unary.rb b/activerecord/lib/arel/nodes/unary.rb new file mode 100644 index 0000000000..e458d87ab3 --- /dev/null +++ b/activerecord/lib/arel/nodes/unary.rb @@ -0,0 +1,44 @@ +# frozen_string_literal: true +module Arel + module Nodes + class Unary < Arel::Nodes::NodeExpression + attr_accessor :expr + alias :value :expr + + def initialize expr + super() + @expr = expr + end + + def hash + @expr.hash + end + + def eql? other + self.class == other.class && + self.expr == other.expr + end + alias :== :eql? + end + + %w{ + Bin + Cube + DistinctOn + Group + GroupingElement + GroupingSet + Lateral + Limit + Lock + Not + Offset + On + Ordering + RollUp + Top + }.each do |name| + const_set(name, Class.new(Unary)) + end + end +end |