diff options
Diffstat (limited to 'lib')
-rw-r--r-- | lib/arel/algebra/attributes.rb | 2 | ||||
-rw-r--r-- | lib/arel/algebra/attributes/attribute.rb | 58 | ||||
-rw-r--r-- | lib/arel/algebra/attributes/integer.rb | 2 | ||||
-rw-r--r-- | lib/arel/algebra/header.rb | 2 | ||||
-rw-r--r-- | lib/arel/algebra/predicates.rb | 52 | ||||
-rw-r--r-- | lib/arel/engines/memory/predicates.rb | 16 | ||||
-rw-r--r-- | lib/arel/engines/sql/attributes.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/sql/core_extensions/array.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/sql/core_extensions/nil_class.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/sql/core_extensions/object.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/sql/core_extensions/range.rb | 2 | ||||
-rw-r--r-- | lib/arel/engines/sql/predicates.rb | 18 | ||||
-rw-r--r-- | lib/arel/engines/sql/primitives.rb | 4 | ||||
-rw-r--r-- | lib/arel/engines/sql/relations/relation.rb | 2 |
14 files changed, 83 insertions, 83 deletions
diff --git a/lib/arel/algebra/attributes.rb b/lib/arel/algebra/attributes.rb index 98302b6b18..6ce65fe132 100644 --- a/lib/arel/algebra/attributes.rb +++ b/lib/arel/algebra/attributes.rb @@ -4,4 +4,4 @@ require "arel/algebra/attributes/decimal" require "arel/algebra/attributes/float" require "arel/algebra/attributes/integer" require "arel/algebra/attributes/string" -require "arel/algebra/attributes/time"
\ No newline at end of file +require "arel/algebra/attributes/time" diff --git a/lib/arel/algebra/attributes/attribute.rb b/lib/arel/algebra/attributes/attribute.rb index 30e26f7584..faa6c068d5 100644 --- a/lib/arel/algebra/attributes/attribute.rb +++ b/lib/arel/algebra/attributes/attribute.rb @@ -85,119 +85,119 @@ module Arel def eq(other) Predicates::Equality.new(self, other) end - + def eq_any(*others) Predicates::Any.build(Predicates::Equality, self, *others) end - + def eq_all(*others) Predicates::All.build(Predicates::Equality, self, *others) end - + def not_eq(other) Predicates::Inequality.new(self, other) end - + def not_eq_any(*others) Predicates::Any.build(Predicates::Inequality, self, *others) end - + def not_eq_all(*others) Predicates::All.build(Predicates::Inequality, self, *others) end - + def lt(other) Predicates::LessThan.new(self, other) end - + def lt_any(*others) Predicates::Any.build(Predicates::LessThan, self, *others) end - + def lt_all(*others) Predicates::All.build(Predicates::LessThan, self, *others) end - + def lteq(other) Predicates::LessThanOrEqualTo.new(self, other) end - + def lteq_any(*others) Predicates::Any.build(Predicates::LessThanOrEqualTo, self, *others) end - + def lteq_all(*others) Predicates::All.build(Predicates::LessThanOrEqualTo, self, *others) end - + def gt(other) Predicates::GreaterThan.new(self, other) end - + def gt_any(*others) Predicates::Any.build(Predicates::GreaterThan, self, *others) end - + def gt_all(*others) Predicates::All.build(Predicates::GreaterThan, self, *others) end - + def gteq(other) Predicates::GreaterThanOrEqualTo.new(self, other) end - + def gteq_any(*others) Predicates::Any.build(Predicates::GreaterThanOrEqualTo, self, *others) end - + def gteq_all(*others) Predicates::All.build(Predicates::GreaterThanOrEqualTo, self, *others) end - + def matches(other) Predicates::Match.new(self, other) end - + def matches_any(*others) Predicates::Any.build(Predicates::Match, self, *others) end - + def matches_all(*others) Predicates::All.build(Predicates::Match, self, *others) end - + def not_matches(other) Predicates::NotMatch.new(self, other) end - + def not_matches_any(*others) Predicates::Any.build(Predicates::NotMatch, self, *others) end - + def not_matches_all(*others) Predicates::All.build(Predicates::NotMatch, self, *others) end - + def in(other) Predicates::In.new(self, other) end - + def in_any(*others) Predicates::Any.build(Predicates::In, self, *others) end - + def in_all(*others) Predicates::All.build(Predicates::In, self, *others) end - + def not_in(other) Predicates::NotIn.new(self, other) end - + def not_in_any(*others) Predicates::Any.build(Predicates::NotIn, self, *others) end - + def not_in_all(*others) Predicates::All.build(Predicates::NotIn, self, *others) end diff --git a/lib/arel/algebra/attributes/integer.rb b/lib/arel/algebra/attributes/integer.rb index 9a564565ff..8d4f572989 100644 --- a/lib/arel/algebra/attributes/integer.rb +++ b/lib/arel/algebra/attributes/integer.rb @@ -7,4 +7,4 @@ module Arel end end end -
\ No newline at end of file + diff --git a/lib/arel/algebra/header.rb b/lib/arel/algebra/header.rb index 3b74d31684..9954da5b65 100644 --- a/lib/arel/algebra/header.rb +++ b/lib/arel/algebra/header.rb @@ -64,4 +64,4 @@ module Arel end end end -end
\ No newline at end of file +end diff --git a/lib/arel/algebra/predicates.rb b/lib/arel/algebra/predicates.rb index 2de867b779..5f780f32ff 100644 --- a/lib/arel/algebra/predicates.rb +++ b/lib/arel/algebra/predicates.rb @@ -8,23 +8,23 @@ module Arel def and(other_predicate) And.new(self, other_predicate) end - + def complement Not.new(self) end - + def not self.complement end end - + class Polyadic < Predicate attributes :predicates - + def initialize(*predicates) @predicates = predicates end - + # Build a Polyadic predicate based on: # * <tt>operator</tt> - The Predicate subclass that defines the type of operation # (LessThan, Equality, etc) @@ -37,19 +37,19 @@ module Arel end ) end - + def ==(other) same_elements?(@predicates, other.predicates) end - + def bind(relation) self.class.new( *predicates.map {|p| p.find_correlate_in(relation)} ) end - + private - + def same_elements?(a1, a2) [:select, :inject, :size].each do |m| return false unless [a1, a2].each {|a| a.respond_to?(m) } @@ -58,28 +58,28 @@ module Arel a2.inject({}) { |h,e| h[e] = a2.select { |i| i == e }.size; h } end end - + class Any < Polyadic def complement All.new(*predicates.map {|p| p.complement}) end end - + class All < Polyadic def complement Any.new(*predicates.map {|p| p.complement}) end end - + class Unary < Predicate attributes :operand deriving :initialize, :== - + def bind(relation) self.class.new(operand.find_correlate_in(relation)) end end - + class Not < Unary def complement operand @@ -100,7 +100,7 @@ module Arel self.class.new(operand1.find_correlate_in(relation), operand2.find_correlate_in(relation)) end end - + class CompoundPredicate < Binary; end class And < CompoundPredicate @@ -108,7 +108,7 @@ module Arel Or.new(operand1.complement, operand2.complement) end end - + class Or < CompoundPredicate def complement And.new(operand1.complement, operand2.complement) @@ -121,7 +121,7 @@ module Arel ((operand1 == other.operand1 and operand2 == other.operand2) or (operand1 == other.operand2 and operand2 == other.operand1)) end - + def complement Inequality.new(operand1, operand2) end @@ -133,54 +133,54 @@ module Arel ((operand1 == other.operand1 and operand2 == other.operand2) or (operand1 == other.operand2 and operand2 == other.operand1)) end - + def complement Equality.new(operand1, operand2) end end - + class GreaterThanOrEqualTo < Binary def complement LessThan.new(operand1, operand2) end end - + class GreaterThan < Binary def complement LessThanOrEqualTo.new(operand1, operand2) end end - + class LessThanOrEqualTo < Binary def complement GreaterThan.new(operand1, operand2) end end - + class LessThan < Binary def complement GreaterThanOrEqualTo.new(operand1, operand2) end end - + class Match < Binary def complement NotMatch.new(operand1, operand2) end end - + class NotMatch < Binary def complement Match.new(operand1, operand2) end end - + class In < Binary def complement NotIn.new(operand1, operand2) end end - + class NotIn < Binary def complement In.new(operand1, operand2) diff --git a/lib/arel/engines/memory/predicates.rb b/lib/arel/engines/memory/predicates.rb index 8b3e5843cc..cca6739424 100644 --- a/lib/arel/engines/memory/predicates.rb +++ b/lib/arel/engines/memory/predicates.rb @@ -5,19 +5,19 @@ module Arel operand1.eval(row).send(operator, operand2.eval(row)) end end - + class Unary < Predicate def eval(row) operand.eval(row).send(operator) end end - + class Not < Unary def eval(row) !operand.eval(row) end end - + class Polyadic < Predicate def eval(row) predicates.send(compounder) do |operation| @@ -25,15 +25,15 @@ module Arel end end end - + class Any < Polyadic def compounder; :any? end end - + class All < Polyadic def compounder; :all? end end - + class CompoundPredicate < Binary def eval(row) eval "operand1.eval(row) #{operator} operand2.eval(row)" @@ -77,7 +77,7 @@ module Arel class Match < Binary def operator; :=~ end end - + class NotMatch < Binary def eval(row) operand1.eval(row) !~ operand2.eval(row) @@ -89,7 +89,7 @@ module Arel operand2.eval(row).include?(operand1.eval(row)) end end - + class NotIn < Binary def eval(row) !(operand2.eval(row).include?(operand1.eval(row))) diff --git a/lib/arel/engines/sql/attributes.rb b/lib/arel/engines/sql/attributes.rb index 2d315d53fc..50cc802162 100644 --- a/lib/arel/engines/sql/attributes.rb +++ b/lib/arel/engines/sql/attributes.rb @@ -37,4 +37,4 @@ module Arel end end end -end
\ No newline at end of file +end diff --git a/lib/arel/engines/sql/core_extensions/array.rb b/lib/arel/engines/sql/core_extensions/array.rb index 412479dc83..05a1bb774c 100644 --- a/lib/arel/engines/sql/core_extensions/array.rb +++ b/lib/arel/engines/sql/core_extensions/array.rb @@ -12,7 +12,7 @@ module Arel def inclusion_predicate_sql "IN" end - + def exclusion_predicate_sql "NOT IN" end diff --git a/lib/arel/engines/sql/core_extensions/nil_class.rb b/lib/arel/engines/sql/core_extensions/nil_class.rb index ab990d6211..9f060ff36e 100644 --- a/lib/arel/engines/sql/core_extensions/nil_class.rb +++ b/lib/arel/engines/sql/core_extensions/nil_class.rb @@ -4,7 +4,7 @@ module Arel def equality_predicate_sql 'IS' end - + def inequality_predicate_sql 'IS NOT' end diff --git a/lib/arel/engines/sql/core_extensions/object.rb b/lib/arel/engines/sql/core_extensions/object.rb index 01c3c5479d..d2fda0fe5f 100644 --- a/lib/arel/engines/sql/core_extensions/object.rb +++ b/lib/arel/engines/sql/core_extensions/object.rb @@ -8,7 +8,7 @@ module Arel def equality_predicate_sql '=' end - + def inequality_predicate_sql '!=' end diff --git a/lib/arel/engines/sql/core_extensions/range.rb b/lib/arel/engines/sql/core_extensions/range.rb index b5b1534e48..c711ffdde6 100644 --- a/lib/arel/engines/sql/core_extensions/range.rb +++ b/lib/arel/engines/sql/core_extensions/range.rb @@ -8,7 +8,7 @@ module Arel def inclusion_predicate_sql "BETWEEN" end - + def exclusion_predicate_sql "NOT BETWEEN" end diff --git a/lib/arel/engines/sql/predicates.rb b/lib/arel/engines/sql/predicates.rb index 59b0ab0929..93d2a2f619 100644 --- a/lib/arel/engines/sql/predicates.rb +++ b/lib/arel/engines/sql/predicates.rb @@ -5,13 +5,13 @@ module Arel "#{operand1.to_sql} #{predicate_sql} #{operand1.format(operand2)}" end end - + class Unary < Predicate def to_sql(formatter = nil) "#{predicate_sql} (#{operand.to_sql(formatter)})" end end - + class Not < Unary def predicate_sql; "NOT" end end @@ -29,19 +29,19 @@ module Arel class And < CompoundPredicate def predicate_sql; "AND" end end - + class Polyadic < Predicate def to_sql(formatter = nil) - "(" + + "(" + predicates.map {|p| p.to_sql(formatter)}.join(" #{predicate_sql} ") + ")" end end - + class Any < Polyadic def predicate_sql; "OR" end end - + class All < Polyadic def predicate_sql; "AND" end end @@ -77,7 +77,7 @@ module Arel class Match < Binary def predicate_sql; 'LIKE' end end - + class NotMatch < Binary def predicate_sql; 'NOT LIKE' end end @@ -92,10 +92,10 @@ module Arel super end end - + def predicate_sql; operand2.inclusion_predicate_sql end end - + class NotIn < Binary def predicate_sql; operand2.exclusion_predicate_sql end end diff --git a/lib/arel/engines/sql/primitives.rb b/lib/arel/engines/sql/primitives.rb index 15a27b2256..1b215d2b54 100644 --- a/lib/arel/engines/sql/primitives.rb +++ b/lib/arel/engines/sql/primitives.rb @@ -29,7 +29,7 @@ module Arel def inclusion_predicate_sql value.inclusion_predicate_sql end - + def exclusion_predicate_sql value.exclusion_predicate_sql end @@ -37,7 +37,7 @@ module Arel def equality_predicate_sql value.equality_predicate_sql end - + def inequality_predicate_sql value.inequality_predicate_sql end diff --git a/lib/arel/engines/sql/relations/relation.rb b/lib/arel/engines/sql/relations/relation.rb index fc353fe0c8..2136f85e5a 100644 --- a/lib/arel/engines/sql/relations/relation.rb +++ b/lib/arel/engines/sql/relations/relation.rb @@ -21,7 +21,7 @@ module Arel def inclusion_predicate_sql "IN" end - + def exclusion_predicate_sql "NOT IN" end |