class Tailog::Eval
Attributes
blacklist[RW]
Public Class Methods
new(app)
click to toggle source
# File lib/tailog/eval.rb, line 9 def initialize app @app = app end
Public Instance Methods
call(env)
click to toggle source
# File lib/tailog/eval.rb, line 13 def call env if skip_call? env @app.call(env) else before = env["HTTP_TAILOG_EVAL_BEFORE"].presence after = env["HTTP_TAILOG_EVAL_AFTER"].presence inject = env["HTTP_TAILOG_INJECT"].presence inject_options = env["HTTP_TAILOG_INJECT_OPTIONS"].present? ? JSON.parse(env["HTTP_TAILOG_INJECT_OPTIONS"]).symbolize_keys : Hash.new binding = Object.new.send(:binding) binding.eval(before) if before Tailog.inject(inject.split(" "), inject_options) rescue nil if inject response = @app.call(env) Tailog.cleanup(inject.split(" ")) if inject binding.eval(after) if after response end end
Private Instance Methods
skip_call?(env)
click to toggle source
# File lib/tailog/eval.rb, line 37 def skip_call? env Tailog::Eval.blacklist.any? do |path| env["PATH_INFO"].start_with? path end end