Class: TaintedLove::Replacer::ReplaceRackBuilder::TaintedLoveRackMiddleware
- Inherits:
-
Object
- Object
- TaintedLove::Replacer::ReplaceRackBuilder::TaintedLoveRackMiddleware
- Defined in:
- lib/tainted_love/replacer/replace_rack_builder.rb
Instance Method Summary collapse
- #call(env) ⇒ Object
-
#initialize(app) ⇒ TaintedLoveRackMiddleware
constructor
A new instance of TaintedLoveRackMiddleware.
- #taint_env(env) ⇒ Object
Constructor Details
#initialize(app) ⇒ TaintedLoveRackMiddleware
Returns a new instance of TaintedLoveRackMiddleware.
19 20 21 |
# File 'lib/tainted_love/replacer/replace_rack_builder.rb', line 19 def initialize(app) @app = app end |
Instance Method Details
#call(env) ⇒ Object
23 24 25 |
# File 'lib/tainted_love/replacer/replace_rack_builder.rb', line 23 def call(env) @app.call(taint_env(env)) end |
#taint_env(env) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 |
# File 'lib/tainted_love/replacer/replace_rack_builder.rb', line 27 def taint_env(env) uppercase_keys = env.to_h.keys.select { |k| k[/[A-Z]/] } values = {} uppercase_keys.each do |key| new_key = key.dup.taint new_value = env[key].dup.taint TaintedLove.tag(new_key, source: "Key #{key.inspect} Rack env", value: new_key) TaintedLove.tag(new_value, source: "Rack env[#{key.inspect}]", value: new_value) values[new_key] = new_value env.delete(key) end env.merge!(values) env end |