Sha256: 13816b74c2f8f8c14f1ec354eb1aa594ec1e09080a9b5b7262fca2ad6507cb9c
Contents?: true
Size: 605 Bytes
Versions: 2
Compression:
Stored size: 605 Bytes
Contents
require 'rack/request' require_relative 'reduction' module Rack module Reducer # Mount Rack::Reducer as middleware class Middleware def initialize(app, options = {}) @app = app @key = options[:key] || 'rack.reduction' @props = options end # Call the next app in the middleware stack, with env[key] set # to the ouput of a reduction def call(env) params = Rack::Request.new(env).params reduction = Reduction.new(@props.merge(params: params)).reduce @app.call env.merge(@key => reduction) end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
rack-reducer-1.0.1 | lib/rack/reducer/middleware.rb |
rack-reducer-1.0.0 | lib/rack/reducer/middleware.rb |