lib/hyperdrive/middleware/pagination.rb in hyperdrive-0.0.8 vs lib/hyperdrive/middleware/pagination.rb in hyperdrive-0.0.9

- old
+ new

@@ -1,19 +1,22 @@ # encoding: utf-8 module Hyperdrive module Middleware class Pagination + attr_reader :default_per_page def initialize(app) @app = app + @default_per_page = hyperdrive.config.fetch(:per_page) { 20 } end 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 + params = Rack::Request.new(env).params + env['hyperdrive.page'] = params.delete('page') { 1 }.to_i + env['hyperdrive.page'] = 1 if env['hyperdrive.page'] < 1 + env['hyperdrive.per_page'] = params.delete('per_page') { default_per_page }.to_i + env['hyperdrive.per_page'] = default_per_page if env['hyperdrive.per_page'] == 0 end @app.call(env) end end end