class Cuprum::Collections::Basic::QueryBuilder

Concrete implementation of QueryBuilder for a basic query.

Attributes

filters[R]

Public Class Methods

new(base_query) click to toggle source

@param base_query [Cuprum::Collections::Basic::Query] The original

query.
Calls superclass method Cuprum::Collections::QueryBuilder::new
# File lib/cuprum/collections/basic/query_builder.rb, line 11
def initialize(base_query)
  super

  @filters = base_query.send(:filters)
end

Private Instance Methods

build_filters(criteria) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 21
def build_filters(criteria)
  criteria.map do |(attribute, operator, value)|
    send(operator, attribute, value)
  end
end
build_query(criteria) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 27
def build_query(criteria)
  super.send(:with_filters, build_filters(criteria))
end
eq(attribute, value)
Alias for: equal
equal(attribute, value) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 31
def equal(attribute, value)
  ->(actual) { actual[attribute.to_s] == value }
end
Also aliased as: eq
greater_than(attribute, value) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 36
def greater_than(attribute, value)
  ->(actual) { actual[attribute.to_s] > value }
end
Also aliased as: gt
greater_than_or_equal_to(attribute, value) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 41
def greater_than_or_equal_to(attribute, value)
  ->(actual) { actual[attribute.to_s] >= value }
end
Also aliased as: gte
gt(attribute, value)
Alias for: greater_than
gte(attribute, value)
less_than(attribute, value) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 46
def less_than(attribute, value)
  ->(actual) { actual[attribute.to_s] < value }
end
Also aliased as: lt
less_than_or_equal_to(attribute, value) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 51
def less_than_or_equal_to(attribute, value)
  ->(actual) { actual[attribute.to_s] <= value }
end
Also aliased as: lte
lt(attribute, value)
Alias for: less_than
lte(attribute, value)
ne(attribute, value)
Alias for: not_equal
not_equal(attribute, value) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 56
def not_equal(attribute, value)
  ->(actual) { actual[attribute.to_s] != value }
end
Also aliased as: ne
not_one_of(attribute, value) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 61
def not_one_of(attribute, value)
  ->(actual) { !value.include?(actual[attribute.to_s]) }
end
one_of(attribute, value) click to toggle source
# File lib/cuprum/collections/basic/query_builder.rb, line 65
def one_of(attribute, value)
  ->(actual) { value.include?(actual[attribute.to_s]) }
end