module SearchEnjoy::Searching::ClassMethods
Public Instance Methods
search(*args)
click to toggle source
# File lib/search_enjoy/searching.rb, line 72 def search(*args) conditions = if args.first.instance_of? Query args.first.query_hash else Query.new({**args.first}).query_hash end previous_result = args.last if args.last.instance_of? QueryResult comparator = Comparator.new(conditions) source = previous_result.nil? ? search_index.values : previous_result result = source.select { |object| comparator.compare(object) } QueryResult.new(self, result) end
search_must(*args)
click to toggle source
# File lib/search_enjoy/searching.rb, line 102 def search_must(*args) raise SearchException, 'Forbidden use Query in search_must' if args.first.instance_of? Query query = Query.new(args.first, must: true) result = search(query, args[1..]) QueryResult.new(self, result) rescue StandardError => e e.message end
search_must_not(*args)
click to toggle source
# File lib/search_enjoy/searching.rb, line 114 def search_must_not(*args) raise SearchException, 'Forbidden use Query in search_must_not' if args.first.instance_of? Query query = Query.new(args.first, inverse: true) result = search(query, args[1..]) QueryResult.new(self, result) rescue StandardError => e e.message end
search_not(*args)
click to toggle source
# File lib/search_enjoy/searching.rb, line 90 def search_not(*args) query = if args.first.instance_of? Query args.first.inverse! else Query.new(args.first, must: true, inverse: true) end result = search(query, args[1..]) QueryResult.new(self, result) end