Sha256: 41f32a3f8829ed6866a2beb1dcc84c33e91eba5de1f6ed0dada69e2c603cbc3e

Contents?: true

Size: 796 Bytes

Versions: 102

Compression:

Stored size: 796 Bytes

Contents

#
# ActsAsPaginable
#
# Adds the a `paginate` scope to a model for `limit` and `offset` pagination.
#
module ActsAsPaginable
  extend ActiveSupport::Concern

  module Base
    def acts_as_paginable(options = nil)
      include ::ActsAsPaginable
    end
  end

  module ClassMethods
    def acts_as_paginable?; true; end
  end

  included do
    def self.default_per_page=(per_page)
      @default_per_page = per_page
    end

    def self.default_per_page
      @default_per_page || 12 # because we often do 3 columns of 4 elements layouts
    end

    scope :paginate, -> (page: nil, per_page: nil) {
      per_page = (per_page || default_per_page).to_i
      page = (page || 1).to_i
      offset = [(page - 1), 0].max * (per_page).to_i

      all.limit(per_page).offset(offset)
    }
  end
end

Version data entries

102 entries across 102 versions & 1 rubygems

Version Path
effective_resources-2.27.9 app/models/concerns/acts_as_paginable.rb
effective_resources-2.27.8 app/models/concerns/acts_as_paginable.rb
effective_resources-2.27.7 app/models/concerns/acts_as_paginable.rb
effective_resources-2.27.6 app/models/concerns/acts_as_paginable.rb
effective_resources-2.27.5 app/models/concerns/acts_as_paginable.rb
effective_resources-2.27.4 app/models/concerns/acts_as_paginable.rb
effective_resources-2.27.3 app/models/concerns/acts_as_paginable.rb
effective_resources-2.27.2 app/models/concerns/acts_as_paginable.rb
effective_resources-2.27.1 app/models/concerns/acts_as_paginable.rb
effective_resources-2.27.0 app/models/concerns/acts_as_paginable.rb
effective_resources-2.26.5 app/models/concerns/acts_as_paginable.rb
effective_resources-2.26.4 app/models/concerns/acts_as_paginable.rb
effective_resources-2.26.3 app/models/concerns/acts_as_paginable.rb
effective_resources-2.26.2 app/models/concerns/acts_as_paginable.rb
effective_resources-2.26.1 app/models/concerns/acts_as_paginable.rb
effective_resources-2.26.0 app/models/concerns/acts_as_paginable.rb
effective_resources-2.25.16 app/models/concerns/acts_as_paginable.rb
effective_resources-2.25.15 app/models/concerns/acts_as_paginable.rb
effective_resources-2.25.14 app/models/concerns/acts_as_paginable.rb
effective_resources-2.25.13 app/models/concerns/acts_as_paginable.rb