class Apiphobic::Resource::Processors::Paging

Attributes

parameters[RW]
resource[RW]

Public Class Methods

meta(*attrs) click to toggle source
# File lib/apiphobic/resource/processors/paging.rb, line 23
def self.meta(*attrs)
  new(*attrs).meta
end
new(resource, parameters = {}) click to toggle source

rubocop:disable Style/OptionHash

# File lib/apiphobic/resource/processors/paging.rb, line 13
def initialize(resource, parameters = {})
  self.resource   = resource
  self.parameters = Parameters::Page.new(parameters['page'] || {})
end
processed(*attrs) click to toggle source

rubocop:enable Style/OptionHash

# File lib/apiphobic/resource/processors/paging.rb, line 19
def self.processed(*attrs)
  new(*attrs).processed
end

Public Instance Methods

meta() click to toggle source
# File lib/apiphobic/resource/processors/paging.rb, line 35
def meta
  return {} unless parameters.present?

  {
    'total-pages'   => resource.total_pages,
    'current-page'  => resource.current_page,
    'previous-page' => resource.prev_page,
    'next-page'     => resource.next_page,
  }
end
processed() click to toggle source
# File lib/apiphobic/resource/processors/paging.rb, line 27
def processed
  return resource unless parameters.present?

  resource
    .page(parameters.page_number)
    .per(parameters.per_page)
end