Class: WebTools::Middleware::Debugger::InProcessDebugger
- Inherits:
-
Object
- Object
- WebTools::Middleware::Debugger::InProcessDebugger
- Defined in:
- lib/web_tools/middleware/debugger.rb
Instance Method Summary collapse
- #application_call(env, result) ⇒ Object
- #debugger_active? ⇒ Boolean
- #info_message(env) ⇒ Object
-
#initialize(app) ⇒ InProcessDebugger
constructor
A new instance of InProcessDebugger.
- #load_template ⇒ Object
- #wrap_call(env) ⇒ Object
Constructor Details
#initialize(app) ⇒ InProcessDebugger
Returns a new instance of InProcessDebugger.
39 40 41 42 43 |
# File 'lib/web_tools/middleware/debugger.rb', line 39 def initialize(app) @app = app @debugger_app = WebTools::Debugger.new load_template end |
Instance Method Details
#application_call(env, result) ⇒ Object
65 66 67 68 69 70 71 72 73 74 75 76 77 |
# 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. [500, {"Content-Type" => "text/html"}, (env)] else result end end |
#debugger_active? ⇒ Boolean
51 52 53 |
# File 'lib/web_tools/middleware/debugger.rb', line 51 def debugger_active? defined?(@@debugger_active) && !!@@debugger_active end |
#info_message(env) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/web_tools/middleware/debugger.rb', line 79 def (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 ⇒ Object
45 46 47 48 49 |
# File 'lib/web_tools/middleware/debugger.rb', line 45 def load_template file = File.(__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) ⇒ Object
55 56 57 58 59 60 61 62 63 |
# 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 |