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 26 27 28 29 |
# 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.present? && @_total_count <= original_array.count original_array = original_array.first(@_total_count)[@_offset_value, @_limit_value] end if @_total_count.nil? original_array = original_array[@_offset_value, @_limit_value] end super(original_array || []) end |
Instance Method Details
#entry_name ⇒ Object
31 32 33 |
# File 'lib/kaminari/models/array_extension.rb', line 31 def entry_name "entry" end |
#limit(num) ⇒ Object
returns another chunk of the original array
43 44 45 |
# File 'lib/kaminari/models/array_extension.rb', line 43 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
53 54 55 |
# File 'lib/kaminari/models/array_extension.rb', line 53 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
48 49 50 |
# File 'lib/kaminari/models/array_extension.rb', line 48 def total_count @_total_count || @_original_array.count end |