Sha256: 3e1519c98f7517cff9a858d8f7e960f9712c01549c343856c87b662f68406643

Contents?: true

Size: 660 Bytes

Versions: 1

Compression:

Stored size: 660 Bytes

Contents

module DataMapper
  module Is
    module Paginated
      def is_paginated(options = {})
        extend  DataMapper::Is::Paginated::ClassMethods
      end

      module ClassMethods
        def paginated(options = {})
          page     = options.delete(:page) || 1
          per_page = options.delete(:per_page) || 5

          options.reverse_merge!({
            :order => [:id.desc]
          })

          page_count = (count(options).to_f / per_page).ceil

          options.merge!({
            :limit => per_page,
            :offset => (page - 1) * per_page
          })

          [ page_count , all(options) ]
        end
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
myabc-dm-is-paginated-0.0.1 lib/dm-is-paginated/is/paginated.rb