From 11f929b5c485adab60ea2d8b515ef2abcf5400f4 Mon Sep 17 00:00:00 2001 From: Daniel Cadenas Date: Tue, 31 May 2011 00:40:11 -0300 Subject: Add nodes for boolean constants This is useful for dynamically created predicates e.g: expr1 = table.create_false expr2 = table.create_false expr1 = create_a_predicate() if some_condition expr2 = create_another_predicate() if some_other_condition table.where(expr1.and(expr2)) --- lib/arel/nodes/false.rb | 17 +++++++++++++++++ lib/arel/nodes/true.rb | 17 +++++++++++++++++ 2 files changed, 34 insertions(+) create mode 100644 lib/arel/nodes/false.rb create mode 100644 lib/arel/nodes/true.rb (limited to 'lib/arel/nodes') diff --git a/lib/arel/nodes/false.rb b/lib/arel/nodes/false.rb new file mode 100644 index 0000000000..4196070946 --- /dev/null +++ b/lib/arel/nodes/false.rb @@ -0,0 +1,17 @@ +module Arel + module Nodes + class False < Arel::Nodes::Node + def not + True.new + end + + def or right + right + end + + def and right + self + end + end + end +end diff --git a/lib/arel/nodes/true.rb b/lib/arel/nodes/true.rb new file mode 100644 index 0000000000..82f20837f8 --- /dev/null +++ b/lib/arel/nodes/true.rb @@ -0,0 +1,17 @@ +module Arel + module Nodes + class True < Arel::Nodes::Node + def not + False.new + end + + def or right + self + end + + def and right + right + end + end + end +end -- cgit v1.2.3