aboutsummaryrefslogtreecommitdiffstats
path: root/lib/arel/nodes
diff options
context:
space:
mode:
Diffstat (limited to 'lib/arel/nodes')
-rw-r--r--lib/arel/nodes/node.rb7
-rw-r--r--lib/arel/nodes/not.rb11
2 files changed, 18 insertions, 0 deletions
diff --git a/lib/arel/nodes/node.rb b/lib/arel/nodes/node.rb
index 43bad19488..841b954db9 100644
--- a/lib/arel/nodes/node.rb
+++ b/lib/arel/nodes/node.rb
@@ -4,6 +4,13 @@ module Arel
# Abstract base class for all AST nodes
class Node
###
+ # Factory method to create a Nodes::Not node that has the recipient of
+ # the caller as a child.
+ def not
+ Nodes::Not.new self
+ end
+
+ ###
# Factory method to create a Nodes::Grouping node that has an Nodes::Or
# node as a child.
def or right
diff --git a/lib/arel/nodes/not.rb b/lib/arel/nodes/not.rb
new file mode 100644
index 0000000000..d463ae9d08
--- /dev/null
+++ b/lib/arel/nodes/not.rb
@@ -0,0 +1,11 @@
+module Arel
+ module Nodes
+ class Not < Arel::Nodes::Node
+ attr_reader :expr
+
+ def initialize expr
+ @expr = expr
+ end
+ end
+ end
+end