Class: WhereRow::QueryBuilderFascade
- Inherits:
-
Object
- Object
- WhereRow::QueryBuilderFascade
- Defined in:
- lib/where_row/query_builder_fascade.rb
Instance Method Summary collapse
-
#eq(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) = (v1, v2, v3, …).
-
#gt(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) > (v1, v2, v3, …).
-
#gte(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) >= (v1, v2, v3, …).
-
#in(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) IN ((a1, a2, a3, …), (b1, b2, b3, …)).
- #in_range(range) ⇒ Object
-
#initialize(relation, keys, negated = false) ⇒ QueryBuilderFascade
constructor
A new instance of QueryBuilderFascade.
-
#lt(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) < (v1, v2, v3, …).
-
#lte(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) <= (v1, v2, v3, …).
-
#not ⇒ WhereRow::QueryBuilderFascade
Negate the where_row condition that follows.
Constructor Details
#initialize(relation, keys, negated = false) ⇒ QueryBuilderFascade
Returns a new instance of QueryBuilderFascade.
5 6 7 8 9 |
# File 'lib/where_row/query_builder_fascade.rb', line 5 def initialize(relation, keys, negated = false) @relation = relation @keys = keys @negated = negated end |
Instance Method Details
#eq(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) = (v1, v2, v3, …)
31 32 33 34 35 |
# File 'lib/where_row/query_builder_fascade.rb', line 31 def eq(*values) op = @negated ? :not_eq : :eq QueryBuilder.new(@relation, @keys, op, values).build end |
#gt(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) > (v1, v2, v3, …)
77 78 79 80 81 |
# File 'lib/where_row/query_builder_fascade.rb', line 77 def gt(*values) op = @negated ? :lteq : :gt QueryBuilder.new(@relation, @keys, op, values).build end |
#gte(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) >= (v1, v2, v3, …)
90 91 92 93 94 |
# File 'lib/where_row/query_builder_fascade.rb', line 90 def gte(*values) op = @negated ? :lt : :gteq QueryBuilder.new(@relation, @keys, op, values).build end |
#in(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) IN ((a1, a2, a3, …), (b1, b2, b3, …))
44 45 46 47 48 |
# File 'lib/where_row/query_builder_fascade.rb', line 44 def in(*values) op = @negated ? :not_in : :in QueryBuilder.new(@relation, @keys, op, values).build end |
#in_range(range) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/where_row/query_builder_fascade.rb', line 50 def in_range(range) if @negated result = @relation.where_row(@keys).lt(range.begin) if range.exclude_end? result.or(@relation.where_row(@keys).gte(range.end)) else result.or(@relation.where_row(@keys).gt(range.end)) end else result = @relation.where_row(@keys).gte(range.begin) if range.exclude_end? result.where_row(@keys).lt(range.end) else result.where_row(@keys).lte(range.end) end end end |
#lt(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) < (v1, v2, v3, …)
103 104 105 106 107 |
# File 'lib/where_row/query_builder_fascade.rb', line 103 def lt(*values) op = @negated ? :gteq : :lt QueryBuilder.new(@relation, @keys, op, values).build end |
#lte(*values) ⇒ ActiveRecord::Relation
Generates the equivalent clause of (c1, c2, c3, …) <= (v1, v2, v3, …)
116 117 118 119 120 |
# File 'lib/where_row/query_builder_fascade.rb', line 116 def lte(*values) op = @negated ? :gt : :lteq QueryBuilder.new(@relation, @keys, op, values).build end |
#not ⇒ WhereRow::QueryBuilderFascade
Negate the where_row condition that follows
20 21 22 |
# File 'lib/where_row/query_builder_fascade.rb', line 20 def not self.class.new(@relation, @keys, true) end |