class ElasticRecord::Relation::SearchMethods::FilterChain

Public Class Methods

new(scope) click to toggle source
# File lib/elastic_record/relation/search_methods.rb, line 5
def initialize(scope)
  @scope = scope
end

Public Instance Methods

add_filter_nodes_to_scope(filters) { |filter_node| ... } click to toggle source
# File lib/elastic_record/relation/search_methods.rb, line 21
def add_filter_nodes_to_scope(filters)
  filter_value = @scope.send(:build_filter_nodes, filters).map do |filter_node|
    yield filter_node
  end

  @scope.filter_values += filter_value
  @scope
end
nested(path, *filters) click to toggle source
# File lib/elastic_record/relation/search_methods.rb, line 15
def nested(path, *filters)
  add_filter_nodes_to_scope(filters) do |filter_node|
    Arelastic::Queries::Nested.new path, filter_node
  end
end
not(*filters) click to toggle source
# File lib/elastic_record/relation/search_methods.rb, line 9
def not(*filters)
  add_filter_nodes_to_scope(filters) do |filter_node|
    Arelastic::Queries::Bool.new must_not: filter_node
  end
end