Class: Kaminari::PaginatableArray
- Inherits:
-
Array
- Object
- Array
- Kaminari::PaginatableArray
- Includes:
- ConfigurationMethods::ClassMethods
- Defined in:
- lib/kaminari/models/array_extension.rb
Overview
Kind of Array that can paginate
Instance Method Summary collapse
- #entry_name ⇒ Object
-
#initialize(original_array = [], options = {}) ⇒ PaginatableArray
constructor
Options *
:limit
- limit *:offset
- offset *:total_count
- total_count. -
#limit(num) ⇒ Object
returns another chunk of the original array.
-
#offset(num) ⇒ Object
returns another chunk of the original array.
-
#total_count ⇒ Object
total item numbers of the original array.
Methods included from ConfigurationMethods::ClassMethods
#default_per_page, #max_pages, #max_pages_per, #max_paginates_per, #max_per_page, #paginates_per
Constructor Details
#initialize(original_array = [], options = {}) ⇒ PaginatableArray
Options
-
:limit
- limit -
:offset
- offset -
:total_count
- total_count
13 14 15 16 17 18 19 20 21 22 23 24 25 |
# File 'lib/kaminari/models/array_extension.rb', line 13 def initialize(original_array = [], = {}) @_original_array, @_limit_value, @_offset_value, @_total_count, @_padding = original_array, ([:limit] || default_per_page).to_i, [:offset].to_i, [:total_count], [:padding].to_i if [:limit] && [:offset] extend Kaminari::PageScopeMethods end if @_total_count original_array = original_array.first(@_total_count) end super(original_array[@_offset_value, @_limit_value] || []) end |
Instance Method Details
#entry_name ⇒ Object
27 28 29 |
# File 'lib/kaminari/models/array_extension.rb', line 27 def entry_name "entry" end |
#limit(num) ⇒ Object
returns another chunk of the original array
39 40 41 |
# File 'lib/kaminari/models/array_extension.rb', line 39 def limit(num) self.class.new @_original_array, :limit => num, :offset => @_offset_value, :total_count => @_total_count, :padding => @_padding end |
#offset(num) ⇒ Object
returns another chunk of the original array
49 50 51 |
# File 'lib/kaminari/models/array_extension.rb', line 49 def offset(num) self.class.new @_original_array, :limit => @_limit_value, :offset => num, :total_count => @_total_count, :padding => @_padding end |
#total_count ⇒ Object
total item numbers of the original array
44 45 46 |
# File 'lib/kaminari/models/array_extension.rb', line 44 def total_count @_total_count || @_original_array.count end |