class Yaqb::QueryBuilders::Paginate

Public Class Methods

new(scope, query_params, url) click to toggle source
# File lib/yaqb/query_builders/paginate.rb, line 6
def initialize(scope, query_params, url)
  @query_params = query_params
  @page = validate_param!(:page, 1)
  @per = validate_param!(:per, default_per_page)
  @scope = paginate!(scope)
  @url = url
end

Public Instance Methods

paginate() click to toggle source
# File lib/yaqb/query_builders/paginate.rb, line 14
def paginate
  @scope
end

Private Instance Methods

validate_param!(name, default) click to toggle source
# File lib/yaqb/query_builders/paginate.rb, line 27
def validate_param!(name, default)
  return default unless @query_params[name]

  unless @query_params[name] =~ /\A\d+\z/
    raise Errors::QueryBuilderError.new("#{name}=#{@query_params[name]}"),
    'Invalid pagination params. Only numbers are supported for "page" and "per"'
  end

  @query_params[name]
end