class GraphQL::Searchkick::LazySearch

Constants

SEARCH_ALL

Attributes

limit_value[RW]
model_class[RW]
offset_value[RW]
options[RW]
query[RW]

Public Class Methods

new(options, query:, model_class:) click to toggle source
# File lib/graphql/searchkick/lazy_search.rb, line 20
def initialize(options, query:, model_class:)
  @query =
    if query.nil? || query.empty?
      SEARCH_ALL
    else
      query
    end
  @model_class = model_class
  @options = options || {}

  if @options.key?(:limit)
    self.limit_value = @options[:limit]
  end
end

Public Instance Methods

limit(value) click to toggle source
# File lib/graphql/searchkick/lazy_search.rb, line 43
def limit(value)
  clone.limit!(value)
end
limit!(value) click to toggle source
# File lib/graphql/searchkick/lazy_search.rb, line 51
def limit!(value)
  self.limit_value = value
  self
end
load() click to toggle source
# File lib/graphql/searchkick/lazy_search.rb, line 35
def load
  return @result if defined? @result

  @result = model_class.search(query, options.merge(limit: limit_value, offset: offset_value))

  @result
end
offset(value) click to toggle source
# File lib/graphql/searchkick/lazy_search.rb, line 47
def offset(value)
  clone.offset!(value)
end
offset!(value) click to toggle source
# File lib/graphql/searchkick/lazy_search.rb, line 56
def offset!(value)
  self.offset_value = value
  self
end