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

MAJOR =
2
MINOR =
0
PATCH =
1
VERSION =
[MAJOR, MINOR, PATCH].join('.')

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.kaminari=(value) ⇒ Object (writeonly)

Sets the attribute kaminari

Parameters:

  • value

    the value to set the attribute kaminari to.



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

Parameters:

  • value

    the value to set the attribute will_paginate to.



7
8
9
# File 'lib/api-pagination.rb', line 7

def will_paginate=(value)
  @will_paginate = value
end

Class Method Details

.kaminari?Boolean

Returns:

  • (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, options = {}, &block)
  options[:page]     ||= 1
  options[:per_page] ||= 10

  if ApiPagination.kaminari?
    collection.page(options[:page]).per(options[:per_page]).tap(&block)
  elsif ApiPagination.will_paginate?
    collection.paginate(:page => options[:page], :per_page => options[:per_page]).tap(&block)
  end
end

.will_paginate?Boolean

Returns:

  • (Boolean)


10
# File 'lib/api-pagination.rb', line 10

def will_paginate?() !!@will_paginate end