class Greedo::Paginator
Attributes
order[R]
order_by[R]
page[R]
per_page[R]
scope[R]
Public Class Methods
build(scope, page: 1, per_page: 20, order_by: nil)
click to toggle source
# File lib/greedo/paginator.rb, line 8 def self.build(scope, page: 1, per_page: 20, order_by: nil) return ArrayPaginator.new(scope, order_by.order, order_by.sort) if scope.is_a?(Array) Paginator.new(scope, page: page, per_page: per_page, order: order_by.order, order_by: order_by.sort) end
new(scope, page:, per_page:, order: nil, order_by: nil)
click to toggle source
# File lib/greedo/paginator.rb, line 17 def initialize(scope, page:, per_page:, order: nil, order_by: nil) @scope = scope @page = page @per_page = per_page @order = order @order_by = order_by end
Public Instance Methods
records()
click to toggle source
# File lib/greedo/paginator.rb, line 25 def records paginated = scope.paginate(page: page, per_page: per_page) order_by_fields = [order_by].flatten.map { |field| "#{field} #{order}" }.join(", ") order_by ? paginated.reorder(order_by_fields) : paginated end
show?()
click to toggle source
# File lib/greedo/paginator.rb, line 31 def show? scope.length > per_page end