lib/fish0/paginator.rb in fish0-0.0.11 vs lib/fish0/paginator.rb in fish0-0.0.12

- old
+ new

@@ -1,37 +1,53 @@ module Fish0 class Paginator include Enumerable - delegate :each, :all, :skip, :limit, :padding, to: :collection + delegate :each, :all, :skip, :limit, :padding, :fetch, to: :collection attr_reader :collection def initialize(collection, page_number: 1, per_page: 22, padding: 0) @collection = collection || (raise ArgumentError) @per = per_page - @page = page_number - 1 + @page = page_number @padding = padding per(per_page) page(page_number) end def page(value = @page) @page = value - skip(@page * @per + @padding) + skip((@page - 1) * @per + @padding) self end def per(value = @per) @per = value - skip(@page * @per + @padding) + skip((@page - 1) * @per + @padding) limit(@per) self end def padding(value) @padding = value page skip self + end + + def total + collection.count + end + + def current_page + @page + end + + def pages + (total.to_f / @per).ceil + end + + def last_page? + current_page >= pages end end end