Module: ApiPagination
- Defined in:
- lib/api-pagination.rb,
lib/api-pagination/hooks.rb,
lib/api-pagination/version.rb
Defined Under Namespace
Classes: Hooks
Constant Summary collapse
Class Attribute Summary collapse
-
.kaminari ⇒ Object
writeonly
Sets the attribute kaminari.
-
.will_paginate ⇒ Object
writeonly
Sets the attribute will_paginate.
Class Method Summary collapse
- .kaminari? ⇒ Boolean
- .pages_from(collection) ⇒ Object
- .paginate(collection, options = {}, &block) ⇒ Object
- .will_paginate? ⇒ Boolean
Class Attribute Details
.kaminari=(value) ⇒ Object (writeonly)
Sets the attribute kaminari
6 7 8 |
# File 'lib/api-pagination.rb', line 6 def kaminari=(value) @kaminari = value end |
.will_paginate=(value) ⇒ Object (writeonly)
Sets the attribute will_paginate
7 8 9 |
# File 'lib/api-pagination.rb', line 7 def will_paginate=(value) @will_paginate = value end |
Class Method Details
.kaminari? ⇒ Boolean
9 |
# File 'lib/api-pagination.rb', line 9 def kaminari?() !!@kaminari end |
.pages_from(collection) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/api-pagination.rb', line 23 def pages_from(collection) {}.tap do |pages| unless collection.first_page? pages[:first] = 1 pages[:prev] = collection.current_page - 1 end unless collection.last_page? pages[:last] = collection.total_pages pages[:next] = collection.current_page + 1 end end end |
.paginate(collection, options = {}, &block) ⇒ Object
12 13 14 15 16 17 18 19 20 21 |
# File 'lib/api-pagination.rb', line 12 def paginate(collection, = {}, &block) [:page] ||= 1 [:per_page] ||= 10 if ApiPagination.kaminari? collection.page([:page]).per([:per_page]).tap(&block) elsif ApiPagination.will_paginate? collection.paginate(:page => [:page], :per_page => [:per_page]).tap(&block) end end |
.will_paginate? ⇒ Boolean
10 |
# File 'lib/api-pagination.rb', line 10 def will_paginate?() !!@will_paginate end |