class RackFlags::RackMiddleware

Constants

ENV_KEY

Public Class Methods

new( app, args ) click to toggle source
# File lib/rack-flags/rack_middleware.rb, line 5
def initialize( app, args )
  @app = app
  @disable_config_caching = args.fetch(:disable_config_caching, false)
  @yaml_path = args.fetch( :yaml_path ){ raise ArgumentError.new( 'yaml_path must be provided' ) }
end

Public Instance Methods

call( env ) click to toggle source
# File lib/rack-flags/rack_middleware.rb, line 11
def call( env )
  overrides = CookieCodec.new.overrides_from_env( env )
  reader = Reader.new( config.flags, overrides )
  env[ENV_KEY] = reader

  @app.call(env)
end

Private Instance Methods

config() click to toggle source
# File lib/rack-flags/rack_middleware.rb, line 20
def config
  @config = nil if @disable_config_caching
  @config ||= Config.load(@yaml_path)
end