class Scorpion::Rack::Middleware
Constants
- ENV_KEY
Attributes
nest[R]
Public Class Methods
new( app, nest = nil )
click to toggle source
# File lib/scorpion/rack/middleware.rb, line 9 def initialize( app, nest = nil ) @app = app @nest = nest end
Public Instance Methods
call( env )
click to toggle source
# File lib/scorpion/rack/middleware.rb, line 14 def call( env ) # If we don't have a nest yet, build one from the configured global # scorpion. @nest ||= Scorpion.instance.build_nest conceived = false env[ENV_KEY] ||= begin conceived = true prepare_scorpion( nest.conceive, env ) end @app.call(env).tap do free_scorpion( env ) if conceived end end
Private Instance Methods
free_scorpion( env )
click to toggle source
# File lib/scorpion/rack/middleware.rb, line 40 def free_scorpion( env ) env[ENV_KEY].destroy end
prepare_scorpion( scorpion, env )
click to toggle source
# File lib/scorpion/rack/middleware.rb, line 35 def prepare_scorpion( scorpion, env ) scorpion.hunt_for Rack::Env, return: env scorpion end