Class: Hyperdrive::Middleware::Pagination

Inherits:
Object
  • Object
show all
Defined in:
lib/hyperdrive/middleware/pagination.rb

Instance Method Summary collapse

Constructor Details

#initialize(app) ⇒ Pagination

Returns a new instance of Pagination.



6
7
8
# File 'lib/hyperdrive/middleware/pagination.rb', line 6

def initialize(app)
  @app = app
end

Instance Method Details

#call(env) ⇒ Object



10
11
12
13
14
15
16
17
18
# File 'lib/hyperdrive/middleware/pagination.rb', line 10

def call(env)
  if %(GET HEAD).include? env['REQUEST_METHOD']
    env['hyperdrive.page'] = env['hyperdrive.params'].delete(:page) { 1 }
    env['hyperdrive.page'] = 1 if env['hyperdrive.page'].to_i < 1
    env['hyperdrive.per_page'] = env['hyperdrive.params'].delete(:per_page) { hyperdrive.config.fetch(:per_page) { 20 } }
    env['hyperdrive.per_page'] = 20 if env['hyperdrive.per_page'].to_i == 0
  end
  @app.call(env)
end