Class: Flipper::Middleware::SetupEnv
- Inherits:
-
Object
- Object
- Flipper::Middleware::SetupEnv
- Defined in:
- lib/flipper/middleware/setup_env.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app, flipper_or_block, options = {}) ⇒ SetupEnv
constructor
Public: Initializes an instance of the SetupEnv middleware.
Constructor Details
#initialize(app, flipper_or_block, options = {}) ⇒ SetupEnv
Public: Initializes an instance of the SetupEnv middleware. Allows for lazy initialization of the flipper instance being set in the env by providing a block.
app - The app this middleware is included in. flipper_or_block - The Flipper::DSL instance or a block that yields a
Flipper::DSL instance to use for all operations.
Examples
flipper = Flipper.new(...)
# using with a normal flipper instance
use Flipper::Middleware::SetupEnv, flipper
# using with a block that yields a flipper instance
use Flipper::Middleware::SetupEnv, lambda { Flipper.new(...) }
22 23 24 25 26 27 28 29 30 31 |
# File 'lib/flipper/middleware/setup_env.rb', line 22 def initialize(app, flipper_or_block, = {}) @app = app @env_key = .fetch(:env_key, 'flipper') if flipper_or_block.respond_to?(:call) @flipper_block = flipper_or_block else @flipper = flipper_or_block end end |
Instance Method Details
#call(env) ⇒ Object
33 34 35 36 |
# File 'lib/flipper/middleware/setup_env.rb', line 33 def call(env) env[@env_key] ||= flipper @app.call(env) end |