class WebTools::Middleware::Debugger::InProcessDebugger
Public Class Methods
new(app)
click to toggle source
# File lib/web_tools/middleware/debugger.rb, line 39 def initialize(app) @app = app @debugger_app = WebTools::Debugger.new load_template end
Public Instance Methods
application_call(env, result)
click to toggle source
# File lib/web_tools/middleware/debugger.rb, line 65 def application_call(env, result) if result.is_a? Maglev::Debugger::Process raise result.exception if result[:skip_debugger] result[:skip_debugger] = false @@debugged_path = env["PATH_INFO"] @@debugged_process = result.thread.object_id @@debugger_active = true @@debugged_exception = result.exception.message [500, {"Content-Type" => "text/html"}, info_message(env)] else result end end
debugger_active?()
click to toggle source
# File lib/web_tools/middleware/debugger.rb, line 51 def debugger_active? defined?(@@debugger_active) && !!@@debugger_active end
info_message(env)
click to toggle source
# File lib/web_tools/middleware/debugger.rb, line 79 def info_message(env) [render_template(@@debugged_exception, env['rack.url_scheme'].to_s + "://" + env['HTTP_HOST'].to_s + env['SCRIPT_NAME'].to_s + "/process/" + @@debugged_process.to_s)] end
load_template()
click to toggle source
# File lib/web_tools/middleware/debugger.rb, line 45 def load_template file = File.expand_path(__FILE__) _, @template = ::IO.read(file).gsub("\r\n", "\n").split(/^__END__$/, 2) ERB.new(@template).def_method(self.class, 'render_template(title, path)') end
wrap_call(env) { || ... }
click to toggle source
# File lib/web_tools/middleware/debugger.rb, line 55 def wrap_call(env) if debugger_active? response = @debugger_app.call(env) response[1]['Access-Control-Allow-Origin'] = "*" response else application_call(env, yield) end end