-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathhow-models
1 lines (1 loc) · 96.7 KB
/
how-models
1
=> [31m[1;31m"[0m[31m<!DOCTYPE html>[1;35m\n[0m[31m<html lang=[1;35m\"[0m[31men[1;35m\"[0m[31m>[1;35m\n[0m[31m<head>[1;35m\n[0m[31m <meta charset=[1;35m\"[0m[31mutf-8[1;35m\"[0m[31m />[1;35m\n[0m[31m <title>Action Controller: Exception caught</title>[1;35m\n[0m[31m <style>[1;35m\n[0m[31m body {[1;35m\n[0m[31m background-color: #FAFAFA;[1;35m\n[0m[31m color: #333;[1;35m\n[0m[31m margin: 0px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m body, p, ol, ul, td {[1;35m\n[0m[31m font-family: helvetica, verdana, arial, sans-serif;[1;35m\n[0m[31m font-size: 13px;[1;35m\n[0m[31m line-height: 18px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m pre {[1;35m\n[0m[31m font-size: 11px;[1;35m\n[0m[31m white-space: pre-wrap;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m pre.box {[1;35m\n[0m[31m border: 1px solid #EEE;[1;35m\n[0m[31m padding: 10px;[1;35m\n[0m[31m margin: 0px;[1;35m\n[0m[31m width: 958px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m header {[1;35m\n[0m[31m color: #F0F0F0;[1;35m\n[0m[31m background: #C52F24;[1;35m\n[0m[31m padding: 0.5em 1.5em;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m h1 {[1;35m\n[0m[31m margin: 0.2em 0;[1;35m\n[0m[31m line-height: 1.1em;[1;35m\n[0m[31m font-size: 2em;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m h2 {[1;35m\n[0m[31m color: #C52F24;[1;35m\n[0m[31m line-height: 25px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .details {[1;35m\n[0m[31m border: 1px solid #D0D0D0;[1;35m\n[0m[31m border-radius: 4px;[1;35m\n[0m[31m margin: 1em 0px;[1;35m\n[0m[31m display: block;[1;35m\n[0m[31m width: 978px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .summary {[1;35m\n[0m[31m padding: 8px 15px;[1;35m\n[0m[31m border-bottom: 1px solid #D0D0D0;[1;35m\n[0m[31m display: block;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .details pre {[1;35m\n[0m[31m margin: 5px;[1;35m\n[0m[31m border: none;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #container {[1;35m\n[0m[31m box-sizing: border-box;[1;35m\n[0m[31m width: 100%;[1;35m\n[0m[31m padding: 0 1.5em;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .source * {[1;35m\n[0m[31m margin: 0px;[1;35m\n[0m[31m padding: 0px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .source {[1;35m\n[0m[31m border: 1px solid #D9D9D9;[1;35m\n[0m[31m background: #ECECEC;[1;35m\n[0m[31m width: 978px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .source pre {[1;35m\n[0m[31m padding: 10px 0px;[1;35m\n[0m[31m border: none;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .source .data {[1;35m\n[0m[31m font-size: 80%;[1;35m\n[0m[31m overflow: auto;[1;35m\n[0m[31m background-color: #FFF;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .info {[1;35m\n[0m[31m padding: 0.5em;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .source .data .line_numbers {[1;35m\n[0m[31m background-color: #ECECEC;[1;35m\n[0m[31m color: #AAA;[1;35m\n[0m[31m padding: 1em .5em;[1;35m\n[0m[31m border-right: 1px solid #DDD;[1;35m\n[0m[31m text-align: right;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .line {[1;35m\n[0m[31m padding-left: 10px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .line:hover {[1;35m\n[0m[31m background-color: #F6F6F6;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .line.active {[1;35m\n[0m[31m background-color: #FFCCCC;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m .hidden {[1;35m\n[0m[31m display: none;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m a { color: #980905; }[1;35m\n[0m[31m a:visited { color: #666; }[1;35m\n[0m[31m a.trace-frames { color: #666; }[1;35m\n[0m[31m a:hover { color: #C52F24; }[1;35m\n[0m[31m a.trace-frames.selected { color: #C52F24 }[1;35m\n[0m[31m[1;35m\n[0m[31m #route_table {[1;35m\n[0m[31m margin: 0;[1;35m\n[0m[31m border-collapse: collapse;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #route_table thead tr {[1;35m\n[0m[31m border-bottom: 2px solid #ddd;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #route_table thead tr.bottom {[1;35m\n[0m[31m border-bottom: none;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #route_table thead tr.bottom th {[1;35m\n[0m[31m padding: 10px 0;[1;35m\n[0m[31m line-height: 15px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #route_table tbody tr {[1;35m\n[0m[31m border-bottom: 1px solid #ddd;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #route_table tbody tr:nth-child(odd) {[1;35m\n[0m[31m background: #f2f2f2;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #route_table tbody.exact_matches,[1;35m\n[0m[31m #route_table tbody.fuzzy_matches {[1;35m\n[0m[31m background-color: LightGoldenRodYellow;[1;35m\n[0m[31m border-bottom: solid 2px SlateGrey;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #route_table tbody.exact_matches tr,[1;35m\n[0m[31m #route_table tbody.fuzzy_matches tr {[1;35m\n[0m[31m background: none;[1;35m\n[0m[31m border-bottom: none;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #route_table td {[1;35m\n[0m[31m padding: 4px 30px;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m #path_search {[1;35m\n[0m[31m width: 80%;[1;35m\n[0m[31m font-size: inherit;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m </style>[1;35m\n[0m[31m[1;35m\n[0m[31m <script>[1;35m\n[0m[31m var toggle = function(id) {[1;35m\n[0m[31m var s = document.getElementById(id).style;[1;35m\n[0m[31m s.display = s.display == 'none' ? 'block' : 'none';[1;35m\n[0m[31m return false;[1;35m\n[0m[31m }[1;35m\n[0m[31m var show = function(id) {[1;35m\n[0m[31m document.getElementById(id).style.display = 'block';[1;35m\n[0m[31m }[1;35m\n[0m[31m var hide = function(id) {[1;35m\n[0m[31m document.getElementById(id).style.display = 'none';[1;35m\n[0m[31m }[1;35m\n[0m[31m var toggleTrace = function() {[1;35m\n[0m[31m return toggle('blame_trace');[1;35m\n[0m[31m }[1;35m\n[0m[31m var toggleSessionDump = function() {[1;35m\n[0m[31m return toggle('session_dump');[1;35m\n[0m[31m }[1;35m\n[0m[31m var toggleEnvDump = function() {[1;35m\n[0m[31m return toggle('env_dump');[1;35m\n[0m[31m }[1;35m\n[0m[31m </script>[1;35m\n[0m[31m</head>[1;35m\n[0m[31m<body>[1;35m\n[0m[31m[1;35m\n[0m[31m<header>[1;35m\n[0m[31m <h1>Routing Error</h1>[1;35m\n[0m[31m</header>[1;35m\n[0m[31m<div id=[1;35m\"[0m[31mcontainer[1;35m\"[0m[31m>[1;35m\n[0m[31m <h2>No route matches [GET] "/users"</h2>[1;35m\n[0m[31m[1;35m\n[0m[31m [1;35m\n[0m[31m<p><code>Rails.root: /home/george/sites/timetracker</code></p>[1;35m\n[0m[31m[1;35m\n[0m[31m<div id=[1;35m\"[0m[31mtraces[1;35m\"[0m[31m>[1;35m\n[0m[31m <a href=[1;35m\"[0m[31m#[1;35m\"[0m[31m onclick=[1;35m\"[0m[31mhide('Framework-Trace');hide('Full-Trace');show('Application-Trace');; return false;[1;35m\"[0m[31m>Application Trace</a> |[1;35m\n[0m[31m <a href=[1;35m\"[0m[31m#[1;35m\"[0m[31m onclick=[1;35m\"[0m[31mhide('Application-Trace');hide('Full-Trace');show('Framework-Trace');; return false;[1;35m\"[0m[31m>Framework Trace</a> |[1;35m\n[0m[31m <a href=[1;35m\"[0m[31m#[1;35m\"[0m[31m onclick=[1;35m\"[0m[31mhide('Application-Trace');hide('Framework-Trace');show('Full-Trace');; return false;[1;35m\"[0m[31m>Full Trace</a> [1;35m\n[0m[31m[1;35m\n[0m[31m <div id=[1;35m\"[0m[31mApplication-Trace[1;35m\"[0m[31m style=[1;35m\"[0m[31mdisplay: block;[1;35m\"[0m[31m>[1;35m\n[0m[31m <pre><code></code></pre>[1;35m\n[0m[31m </div>[1;35m\n[0m[31m <div id=[1;35m\"[0m[31mFramework-Trace[1;35m\"[0m[31m style=[1;35m\"[0m[31mdisplay: none;[1;35m\"[0m[31m>[1;35m\n[0m[31m <pre><code><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m0[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>actionpack (4.2.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m1[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>web-console (2.3.0) lib/web_console/middleware.rb:28:in `block in call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m2[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>web-console (2.3.0) lib/web_console/middleware.rb:18:in `catch'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m3[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>web-console (2.3.0) lib/web_console/middleware.rb:18:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m4[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>actionpack (4.2.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m5[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/rack/logger.rb:38:in `call_app'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m6[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/rack/logger.rb:20:in `block in call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m7[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>activesupport (4.2.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m8[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>activesupport (4.2.6) lib/active_support/tagged_logging.rb:26:in `tagged'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m9[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>activesupport (4.2.6) lib/active_support/tagged_logging.rb:68:in `tagged'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m10[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/rack/logger.rb:20:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m11[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>actionpack (4.2.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m12[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/methodoverride.rb:22:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m13[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/runtime.rb:18:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m14[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>activesupport (4.2.6) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m15[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/lock.rb:17:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m16[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>actionpack (4.2.6) lib/action_dispatch/middleware/static.rb:120:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m17[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/sendfile.rb:113:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m18[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/engine.rb:518:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m19[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/application.rb:165:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m20[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/urlmap.rb:66:in `block in call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m21[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/urlmap.rb:50:in `each'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m22[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/urlmap.rb:50:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m23[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack-test (0.6.3) lib/rack/mock_session.rb:30:in `request'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m24[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack-test (0.6.3) lib/rack/test.rb:244:in `process_request'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m25[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack-test (0.6.3) lib/rack/test.rb:58:in `get'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m26[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/forwardable.rb:189:in `get'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m27[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/rack_test/browser.rb:61:in `process'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m28[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/rack_test/browser.rb:36:in `process_and_follow_redirects'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m29[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/rack_test/browser.rb:22:in `visit'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m30[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/rack_test/driver.rb:43:in `visit'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m31[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/session.rb:252:in `visit'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m32[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/dsl.rb:52:in `block (2 levels) in <module:DSL>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m33[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-rails (3.5.2) lib/rspec/rails/example/feature_example_group.rb:29:in `visit'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m34[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>spec/features/invitations_feature_spec.rb:19:in `block (2 levels) in <top (required)>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m35[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:254:in `instance_exec'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m36[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:254:in `block in run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m37[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:496:in `block in with_around_and_singleton_context_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m38[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:453:in `block in with_around_example_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m39[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:464:in `block in run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m40[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:604:in `block in run_around_example_hooks_for'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m41[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:338:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m42[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-rails (3.5.2) lib/rspec/rails/adapters.rb:127:in `block (2 levels) in <module:MinitestLifecycleAdapter>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m43[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:443:in `instance_exec'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m44[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:443:in `instance_exec'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m45[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:375:in `execute_with'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m46[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:606:in `block (2 levels) in run_around_example_hooks_for'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m47[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:338:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m48[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:607:in `run_around_example_hooks_for'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m49[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:464:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m50[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:453:in `with_around_example_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m51[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:496:in `with_around_and_singleton_context_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m52[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:251:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m53[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example_group.rb:627:in `block in run_examples'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m54[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example_group.rb:623:in `map'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m55[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example_group.rb:623:in `run_examples'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m56[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example_group.rb:589:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m57[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:113:in `block (3 levels) in run_specs'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m58[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:113:in `map'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m59[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:113:in `block (2 levels) in run_specs'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m60[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/configuration.rb:1835:in `with_suite_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m61[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:112:in `block in run_specs'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m62[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/reporter.rb:77:in `report'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m63[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:111:in `run_specs'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m64[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:87:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m65[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:71:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m66[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:45:in `invoke'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m67[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) exe/rspec:4:in `<top (required)>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m68[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/gems/ruby-2.3.3/bin/rspec:22:in `load'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m69[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/gems/ruby-2.3.3/bin/rspec:22:in `<main>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m70[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/gems/ruby-2.3.3/bin/ruby_executable_hooks:15:in `eval'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m71[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/gems/ruby-2.3.3/bin/ruby_executable_hooks:15:in `<main>'</a><br></code></pre>[1;35m\n[0m[31m </div>[1;35m\n[0m[31m <div id=[1;35m\"[0m[31mFull-Trace[1;35m\"[0m[31m style=[1;35m\"[0m[31mdisplay: none;[1;35m\"[0m[31m>[1;35m\n[0m[31m <pre><code><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m0[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>actionpack (4.2.6) lib/action_dispatch/middleware/debug_exceptions.rb:21:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m1[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>web-console (2.3.0) lib/web_console/middleware.rb:28:in `block in call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m2[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>web-console (2.3.0) lib/web_console/middleware.rb:18:in `catch'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m3[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>web-console (2.3.0) lib/web_console/middleware.rb:18:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m4[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>actionpack (4.2.6) lib/action_dispatch/middleware/show_exceptions.rb:30:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m5[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/rack/logger.rb:38:in `call_app'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m6[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/rack/logger.rb:20:in `block in call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m7[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>activesupport (4.2.6) lib/active_support/tagged_logging.rb:68:in `block in tagged'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m8[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>activesupport (4.2.6) lib/active_support/tagged_logging.rb:26:in `tagged'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m9[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>activesupport (4.2.6) lib/active_support/tagged_logging.rb:68:in `tagged'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m10[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/rack/logger.rb:20:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m11[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>actionpack (4.2.6) lib/action_dispatch/middleware/request_id.rb:21:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m12[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/methodoverride.rb:22:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m13[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/runtime.rb:18:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m14[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>activesupport (4.2.6) lib/active_support/cache/strategy/local_cache_middleware.rb:28:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m15[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/lock.rb:17:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m16[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>actionpack (4.2.6) lib/action_dispatch/middleware/static.rb:120:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m17[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/sendfile.rb:113:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m18[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/engine.rb:518:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m19[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>railties (4.2.6) lib/rails/application.rb:165:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m20[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/urlmap.rb:66:in `block in call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m21[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/urlmap.rb:50:in `each'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m22[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack (1.6.5) lib/rack/urlmap.rb:50:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m23[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack-test (0.6.3) lib/rack/mock_session.rb:30:in `request'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m24[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack-test (0.6.3) lib/rack/test.rb:244:in `process_request'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m25[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rack-test (0.6.3) lib/rack/test.rb:58:in `get'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m26[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/rubies/ruby-2.3.3/lib/ruby/2.3.0/forwardable.rb:189:in `get'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m27[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/rack_test/browser.rb:61:in `process'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m28[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/rack_test/browser.rb:36:in `process_and_follow_redirects'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m29[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/rack_test/browser.rb:22:in `visit'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m30[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/rack_test/driver.rb:43:in `visit'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m31[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/session.rb:252:in `visit'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m32[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>capybara (2.12.0) lib/capybara/dsl.rb:52:in `block (2 levels) in <module:DSL>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m33[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-rails (3.5.2) lib/rspec/rails/example/feature_example_group.rb:29:in `visit'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m34[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>spec/features/invitations_feature_spec.rb:19:in `block (2 levels) in <top (required)>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m35[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:254:in `instance_exec'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m36[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:254:in `block in run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m37[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:496:in `block in with_around_and_singleton_context_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m38[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:453:in `block in with_around_example_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m39[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:464:in `block in run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m40[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:604:in `block in run_around_example_hooks_for'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m41[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:338:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m42[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-rails (3.5.2) lib/rspec/rails/adapters.rb:127:in `block (2 levels) in <module:MinitestLifecycleAdapter>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m43[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:443:in `instance_exec'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m44[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:443:in `instance_exec'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m45[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:375:in `execute_with'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m46[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:606:in `block (2 levels) in run_around_example_hooks_for'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m47[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:338:in `call'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m48[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:607:in `run_around_example_hooks_for'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m49[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/hooks.rb:464:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m50[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:453:in `with_around_example_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m51[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:496:in `with_around_and_singleton_context_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m52[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example.rb:251:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m53[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example_group.rb:627:in `block in run_examples'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m54[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example_group.rb:623:in `map'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m55[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example_group.rb:623:in `run_examples'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m56[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/example_group.rb:589:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m57[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:113:in `block (3 levels) in run_specs'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m58[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:113:in `map'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m59[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:113:in `block (2 levels) in run_specs'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m60[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/configuration.rb:1835:in `with_suite_hooks'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m61[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:112:in `block in run_specs'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m62[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/reporter.rb:77:in `report'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m63[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:111:in `run_specs'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m64[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:87:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m65[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:71:in `run'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m66[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) lib/rspec/core/runner.rb:45:in `invoke'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m67[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>rspec-core (3.5.4) exe/rspec:4:in `<top (required)>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m68[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/gems/ruby-2.3.3/bin/rspec:22:in `load'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m69[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/gems/ruby-2.3.3/bin/rspec:22:in `<main>'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m70[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/gems/ruby-2.3.3/bin/ruby_executable_hooks:15:in `eval'</a><br><a class=[1;35m\"[0m[31mtrace-frames[1;35m\"[0m[31m data-frame-id=[1;35m\"[0m[31m71[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>/home/george/.rvm/gems/ruby-2.3.3/bin/ruby_executable_hooks:15:in `<main>'</a><br></code></pre>[1;35m\n[0m[31m </div>[1;35m\n[0m[31m[1;35m\n[0m[31m <script type=[1;35m\"[0m[31mtext/javascript[1;35m\"[0m[31m>[1;35m\n[0m[31m var traceFrames = document.getElementsByClassName('trace-frames');[1;35m\n[0m[31m var selectedFrame, currentSource = document.getElementById('frame-source-0');[1;35m\n[0m[31m[1;35m\n[0m[31m // Add click listeners for all stack frames[1;35m\n[0m[31m for (var i = 0; i < traceFrames.length; i++) {[1;35m\n[0m[31m traceFrames[i].addEventListener('click', function(e) {[1;35m\n[0m[31m e.preventDefault();[1;35m\n[0m[31m var target = e.target;[1;35m\n[0m[31m var frame_id = target.dataset.frameId;[1;35m\n[0m[31m[1;35m\n[0m[31m if (selectedFrame) {[1;35m\n[0m[31m selectedFrame.className = selectedFrame.className.replace([1;35m\"[0m[31mselected[1;35m\"[0m[31m, [1;35m\"[0m[31m[1;35m\"[0m[31m);[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m target.className += [1;35m\"[0m[31m selected[1;35m\"[0m[31m;[1;35m\n[0m[31m selectedFrame = target;[1;35m\n[0m[31m[1;35m\n[0m[31m // Change the extracted source code[1;35m\n[0m[31m changeSourceExtract(frame_id);[1;35m\n[0m[31m });[1;35m\n[0m[31m[1;35m\n[0m[31m function changeSourceExtract(frame_id) {[1;35m\n[0m[31m var el = document.getElementById('frame-source-' + frame_id);[1;35m\n[0m[31m if (currentSource && el) {[1;35m\n[0m[31m currentSource.className += [1;35m\"[0m[31m hidden[1;35m\"[0m[31m;[1;35m\n[0m[31m el.className = el.className.replace([1;35m\"[0m[31m hidden[1;35m\"[0m[31m, [1;35m\"[0m[31m[1;35m\"[0m[31m);[1;35m\n[0m[31m currentSource = el;[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m </script>[1;35m\n[0m[31m</div>[1;35m\n[0m[31m[1;35m\n[0m[31m[1;35m\n[0m[31m <h2>[1;35m\n[0m[31m Routes[1;35m\n[0m[31m </h2>[1;35m\n[0m[31m[1;35m\n[0m[31m <p>[1;35m\n[0m[31m Routes match in priority from top to bottom[1;35m\n[0m[31m </p>[1;35m\n[0m[31m[1;35m\n[0m[31m [1;35m\n[0m[31m<table id='route_table' class='route_table'>[1;35m\n[0m[31m <thead>[1;35m\n[0m[31m <tr>[1;35m\n[0m[31m <th>Helper</th>[1;35m\n[0m[31m <th>HTTP Verb</th>[1;35m\n[0m[31m <th>Path</th>[1;35m\n[0m[31m <th>Controller#Action</th>[1;35m\n[0m[31m </tr>[1;35m\n[0m[31m <tr class='bottom'>[1;35m\n[0m[31m <th>[1;35m\n[0m[31m <a data-route-helper=[1;35m\"[0m[31m_path[1;35m\"[0m[31m title=[1;35m\"[0m[31mReturns a relative path (without the http or domain)[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>Path</a> /[1;35m\n[0m[31m <a data-route-helper=[1;35m\"[0m[31m_url[1;35m\"[0m[31m title=[1;35m\"[0m[31mReturns an absolute url (with the http and domain)[1;35m\"[0m[31m href=[1;35m\"[0m[31m#[1;35m\"[0m[31m>Url</a>[1;35m\n[0m[31m </th>[1;35m\n[0m[31m <th>[1;35m\n[0m[31m </th>[1;35m\n[0m[31m <th>[1;35m\n[0m[31m <input id=[1;35m\"[0m[31msearch[1;35m\"[0m[31m placeholder=[1;35m\"[0m[31mPath Match[1;35m\"[0m[31m type=[1;35m\"[0m[31msearch[1;35m\"[0m[31m name=[1;35m\"[0m[31mpath[][1;35m\"[0m[31m />[1;35m\n[0m[31m </th>[1;35m\n[0m[31m <th>[1;35m\n[0m[31m </th>[1;35m\n[0m[31m </tr>[1;35m\n[0m[31m </thead>[1;35m\n[0m[31m <tbody class='exact_matches' id='exact_matches'>[1;35m\n[0m[31m </tbody>[1;35m\n[0m[31m <tbody class='fuzzy_matches' id='fuzzy_matches'>[1;35m\n[0m[31m </tbody>[1;35m\n[0m[31m <tbody>[1;35m\n[0m[31m <tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='subdomain_root'>[1;35m\n[0m[31m subdomain_root<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='GET'>[1;35m\n[0m[31m GET[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/' data-regexp='^[1;35m\\[0m[31m/$'>[1;35m\n[0m[31m /[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='projects#index'>[1;35m\n[0m[31m projects#index[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='new_user_session'>[1;35m\n[0m[31m new_user_session<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='GET'>[1;35m\n[0m[31m GET[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/users/sign_in(.:format)' data-regexp='^[1;35m\\[0m[31m/users[1;35m\\[0m[31m/sign_in(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /users/sign_in(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='devise/sessions#new'>[1;35m\n[0m[31m devise/sessions#new[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='user_session'>[1;35m\n[0m[31m user_session<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='POST'>[1;35m\n[0m[31m POST[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/users/sign_in(.:format)' data-regexp='^[1;35m\\[0m[31m/users[1;35m\\[0m[31m/sign_in(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /users/sign_in(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='devise/sessions#create'>[1;35m\n[0m[31m devise/sessions#create[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='destroy_user_session'>[1;35m\n[0m[31m destroy_user_session<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='DELETE'>[1;35m\n[0m[31m DELETE[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/users/sign_out(.:format)' data-regexp='^[1;35m\\[0m[31m/users[1;35m\\[0m[31m/sign_out(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /users/sign_out(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='devise/sessions#destroy'>[1;35m\n[0m[31m devise/sessions#destroy[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='user_password'>[1;35m\n[0m[31m user_password<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='POST'>[1;35m\n[0m[31m POST[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/users/password(.:format)' data-regexp='^[1;35m\\[0m[31m/users[1;35m\\[0m[31m/password(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /users/password(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='devise/passwords#create'>[1;35m\n[0m[31m devise/passwords#create[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='new_user_password'>[1;35m\n[0m[31m new_user_password<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='GET'>[1;35m\n[0m[31m GET[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/users/password/new(.:format)' data-regexp='^[1;35m\\[0m[31m/users[1;35m\\[0m[31m/password[1;35m\\[0m[31m/new(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /users/password/new(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='devise/passwords#new'>[1;35m\n[0m[31m devise/passwords#new[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='edit_user_password'>[1;35m\n[0m[31m edit_user_password<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='GET'>[1;35m\n[0m[31m GET[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/users/password/edit(.:format)' data-regexp='^[1;35m\\[0m[31m/users[1;35m\\[0m[31m/password[1;35m\\[0m[31m/edit(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /users/password/edit(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='devise/passwords#edit'>[1;35m\n[0m[31m devise/passwords#edit[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name=''>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='PATCH'>[1;35m\n[0m[31m PATCH[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/users/password(.:format)' data-regexp='^[1;35m\\[0m[31m/users[1;35m\\[0m[31m/password(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /users/password(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='devise/passwords#update'>[1;35m\n[0m[31m devise/passwords#update[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name=''>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='PUT'>[1;35m\n[0m[31m PUT[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/users/password(.:format)' data-regexp='^[1;35m\\[0m[31m/users[1;35m\\[0m[31m/password(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /users/password(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='devise/passwords#update'>[1;35m\n[0m[31m devise/passwords#update[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='users'>[1;35m\n[0m[31m users<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='GET'>[1;35m\n[0m[31m GET[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/users(.:format)' data-regexp='^[1;35m\\[0m[31m/users(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /users(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='users#index'>[1;35m\n[0m[31m users#index[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='root'>[1;35m\n[0m[31m root<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='GET'>[1;35m\n[0m[31m GET[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/' data-regexp='^[1;35m\\[0m[31m/$'>[1;35m\n[0m[31m /[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='welcome#index'>[1;35m\n[0m[31m welcome#index[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='accounts'>[1;35m\n[0m[31m accounts<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='POST'>[1;35m\n[0m[31m POST[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/accounts(.:format)' data-regexp='^[1;35m\\[0m[31m/accounts(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /accounts(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='accounts#create'>[1;35m\n[0m[31m accounts#create[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m<tr class='route_row' data-helper='path'>[1;35m\n[0m[31m <td data-route-name='new_account'>[1;35m\n[0m[31m new_account<span class='helper'>_path</span>[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-verb='GET'>[1;35m\n[0m[31m GET[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-path='/accounts/new(.:format)' data-regexp='^[1;35m\\[0m[31m/accounts[1;35m\\[0m[31m/new(?:[1;35m\\[0m[31m.([^[1;35m\\[0m[31m/.?]+))?$'>[1;35m\n[0m[31m /accounts/new(.:format)[1;35m\n[0m[31m </td>[1;35m\n[0m[31m <td data-route-reqs='accounts#new'>[1;35m\n[0m[31m accounts#new[1;35m\n[0m[31m </td>[1;35m\n[0m[31m</tr>[1;35m\n[0m[31m[1;35m\n[0m[31m </tbody>[1;35m\n[0m[31m</table>[1;35m\n[0m[31m[1;35m\n[0m[31m<script type='text/javascript'>[1;35m\n[0m[31m // Iterates each element through a function[1;35m\n[0m[31m function each(elems, func) {[1;35m\n[0m[31m if (!elems instanceof Array) { elems = [elems]; }[1;35m\n[0m[31m for (var i = 0, len = elems.length; i < len; i++) {[1;35m\n[0m[31m func(elems[i]);[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // Sets innerHTML for an element[1;35m\n[0m[31m function setContent(elem, text) {[1;35m\n[0m[31m elem.innerHTML = text;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // Enables path search functionality[1;35m\n[0m[31m function setupMatchPaths() {[1;35m\n[0m[31m // Check if the user input (sanitized as a path) matches the regexp data attribute[1;35m\n[0m[31m function checkExactMatch(section, elem, value) {[1;35m\n[0m[31m var string = sanitizePath(value),[1;35m\n[0m[31m regexp = elem.getAttribute([1;35m\"[0m[31mdata-regexp[1;35m\"[0m[31m);[1;35m\n[0m[31m[1;35m\n[0m[31m showMatch(string, regexp, section, elem);[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // Check if the route path data attribute contains the user input[1;35m\n[0m[31m function checkFuzzyMatch(section, elem, value) {[1;35m\n[0m[31m var string = elem.getAttribute([1;35m\"[0m[31mdata-route-path[1;35m\"[0m[31m),[1;35m\n[0m[31m regexp = value;[1;35m\n[0m[31m[1;35m\n[0m[31m showMatch(string, regexp, section, elem);[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // Display the parent <tr> element in the appropriate section when there's a match[1;35m\n[0m[31m function showMatch(string, regexp, section, elem) {[1;35m\n[0m[31m if(string.match(RegExp(regexp))) {[1;35m\n[0m[31m section.appendChild(elem.parentNode.cloneNode(true));[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // Check if there are any matched results in a section[1;35m\n[0m[31m function checkNoMatch(section, defaultText, noMatchText) {[1;35m\n[0m[31m if (section.innerHTML === defaultText) {[1;35m\n[0m[31m setContent(section, defaultText + noMatchText);[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // Ensure path always starts with a slash [1;35m\"[0m[31m/[1;35m\"[0m[31m and remove params or fragments[1;35m\n[0m[31m function sanitizePath(path) {[1;35m\n[0m[31m var path = path.charAt(0) == '/' ? path : [1;35m\"[0m[31m/[1;35m\"[0m[31m + path;[1;35m\n[0m[31m return path.replace(/[1;35m\\[0m[31m#.*|[1;35m\\[0m[31m?.*/, '');[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m var regexpElems = document.querySelectorAll('#route_table [data-regexp]'),[1;35m\n[0m[31m searchElem = document.querySelector('#search'),[1;35m\n[0m[31m exactMatches = document.querySelector('#exact_matches'),[1;35m\n[0m[31m fuzzyMatches = document.querySelector('#fuzzy_matches');[1;35m\n[0m[31m[1;35m\n[0m[31m // Remove matches when no search value is present[1;35m\n[0m[31m searchElem.onblur = function(e) {[1;35m\n[0m[31m if (searchElem.value === [1;35m\"[0m[31m[1;35m\"[0m[31m) {[1;35m\n[0m[31m setContent(exactMatches, [1;35m\"[0m[31m[1;35m\"[0m[31m);[1;35m\n[0m[31m setContent(fuzzyMatches, [1;35m\"[0m[31m[1;35m\"[0m[31m);[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // On key press perform a search for matching paths[1;35m\n[0m[31m searchElem.onkeyup = function(e){[1;35m\n[0m[31m var userInput = searchElem.value,[1;35m\n[0m[31m defaultExactMatch = '<tr><th colspan=[1;35m\"[0m[31m4[1;35m\"[0m[31m>Paths Matching (' + escape(sanitizePath(userInput)) +'):</th></tr>',[1;35m\n[0m[31m defaultFuzzyMatch = '<tr><th colspan=[1;35m\"[0m[31m4[1;35m\"[0m[31m>Paths Containing (' + escape(userInput) +'):</th></tr>',[1;35m\n[0m[31m noExactMatch = '<tr><th colspan=[1;35m\"[0m[31m4[1;35m\"[0m[31m>No Exact Matches Found</th></tr>',[1;35m\n[0m[31m noFuzzyMatch = '<tr><th colspan=[1;35m\"[0m[31m4[1;35m\"[0m[31m>No Fuzzy Matches Found</th></tr>';[1;35m\n[0m[31m[1;35m\n[0m[31m // Clear out results section[1;35m\n[0m[31m setContent(exactMatches, defaultExactMatch);[1;35m\n[0m[31m setContent(fuzzyMatches, defaultFuzzyMatch);[1;35m\n[0m[31m[1;35m\n[0m[31m // Display exact matches and fuzzy matches[1;35m\n[0m[31m each(regexpElems, function(elem) {[1;35m\n[0m[31m checkExactMatch(exactMatches, elem, userInput);[1;35m\n[0m[31m checkFuzzyMatch(fuzzyMatches, elem, userInput);[1;35m\n[0m[31m })[1;35m\n[0m[31m[1;35m\n[0m[31m // Display 'No Matches' message when no matches are found[1;35m\n[0m[31m checkNoMatch(exactMatches, defaultExactMatch, noExactMatch);[1;35m\n[0m[31m checkNoMatch(fuzzyMatches, defaultFuzzyMatch, noFuzzyMatch);[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // Enables functionality to toggle between `_path` and `_url` helper suffixes[1;35m\n[0m[31m function setupRouteToggleHelperLinks() {[1;35m\n[0m[31m[1;35m\n[0m[31m // Sets content for each element[1;35m\n[0m[31m function setValOn(elems, val) {[1;35m\n[0m[31m each(elems, function(elem) {[1;35m\n[0m[31m setContent(elem, val);[1;35m\n[0m[31m });[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // Sets onClick event for each element[1;35m\n[0m[31m function onClick(elems, func) {[1;35m\n[0m[31m each(elems, function(elem) {[1;35m\n[0m[31m elem.onclick = func;[1;35m\n[0m[31m });[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m var toggleLinks = document.querySelectorAll('#route_table [data-route-helper]');[1;35m\n[0m[31m onClick(toggleLinks, function(){[1;35m\n[0m[31m var helperTxt = this.getAttribute([1;35m\"[0m[31mdata-route-helper[1;35m\"[0m[31m),[1;35m\n[0m[31m helperElems = document.querySelectorAll('[data-route-name] span.helper');[1;35m\n[0m[31m[1;35m\n[0m[31m setValOn(helperElems, helperTxt);[1;35m\n[0m[31m });[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m setupMatchPaths();[1;35m\n[0m[31m setupRouteToggleHelperLinks();[1;35m\n[0m[31m</script>[1;35m\n[0m[31m[1;35m\n[0m[31m[1;35m\n[0m[31m [1;35m\n[0m[31m[1;35m\n[0m[31m<h2 style=[1;35m\"[0m[31mmargin-top: 30px[1;35m\"[0m[31m>Request</h2>[1;35m\n[0m[31m<p><b>Parameters</b>:</p> <pre>None</pre>[1;35m\n[0m[31m[1;35m\n[0m[31m<div class=[1;35m\"[0m[31mdetails[1;35m\"[0m[31m>[1;35m\n[0m[31m <div class=[1;35m\"[0m[31msummary[1;35m\"[0m[31m><a href=[1;35m\"[0m[31m#[1;35m\"[0m[31m onclick=[1;35m\"[0m[31mreturn toggleSessionDump()[1;35m\"[0m[31m>Toggle session dump</a></div>[1;35m\n[0m[31m <div id=[1;35m\"[0m[31msession_dump[1;35m\"[0m[31m style=[1;35m\"[0m[31mdisplay:none[1;35m\"[0m[31m><pre></pre></div>[1;35m\n[0m[31m</div>[1;35m\n[0m[31m[1;35m\n[0m[31m<div class=[1;35m\"[0m[31mdetails[1;35m\"[0m[31m>[1;35m\n[0m[31m <div class=[1;35m\"[0m[31msummary[1;35m\"[0m[31m><a href=[1;35m\"[0m[31m#[1;35m\"[0m[31m onclick=[1;35m\"[0m[31mreturn toggleEnvDump()[1;35m\"[0m[31m>Toggle env dump</a></div>[1;35m\n[0m[31m <div id=[1;35m\"[0m[31menv_dump[1;35m\"[0m[31m style=[1;35m\"[0m[31mdisplay:none[1;35m\"[0m[31m><pre>REMOTE_ADDR: "127.0.0.1"[1;35m\n[0m[31mSERVER_NAME: "example.com"</pre></div>[1;35m\n[0m[31m</div>[1;35m\n[0m[31m[1;35m\n[0m[31m<h2 style=[1;35m\"[0m[31mmargin-top: 30px[1;35m\"[0m[31m>Response</h2>[1;35m\n[0m[31m<p><b>Headers</b>:</p> <pre>None</pre>[1;35m\n[0m[31m[1;35m\n[0m[31m</div>[1;35m\n[0m[31m[1;35m\n[0m[31m[1;35m\n[0m[31m<div id=[1;35m\"[0m[31mconsole[1;35m\"[0m[31m[1;35m\n[0m[31m data-mount-point='/__web_console'[1;35m\n[0m[31m data-session-id='7a60ec2dd1a220c2f92516e0bb2d6796'[1;35m\n[0m[31m data-prompt-label='>> '>[1;35m\n[0m[31m</div>[1;35m\n[0m[31m[1;35m\n[0m[31m[1;35m\n[0m[31m<script type=[1;35m\"[0m[31mtext/javascript[1;35m\"[0m[31m>[1;35m\n[0m[31m(function() {[1;35m\n[0m[31m /**[1;35m\n[0m[31m * Constructor for command storage.[1;35m\n[0m[31m * It uses localStorage if available. Otherwise fallback to normal JS array.[1;35m\n[0m[31m */[1;35m\n[0m[31mfunction CommandStorage() {[1;35m\n[0m[31m this.previousCommands = [];[1;35m\n[0m[31m var previousCommandOffset = 0;[1;35m\n[0m[31m var hasLocalStorage = typeof window.localStorage !== 'undefined';[1;35m\n[0m[31m var STORAGE_KEY = [1;35m\"[0m[31mweb_console_previous_commands[1;35m\"[0m[31m;[1;35m\n[0m[31m var MAX_STORAGE = 100;[1;35m\n[0m[31m[1;35m\n[0m[31m if (hasLocalStorage) {[1;35m\n[0m[31m this.previousCommands = JSON.parse(localStorage.getItem(STORAGE_KEY)) || [];[1;35m\n[0m[31m previousCommandOffset = this.previousCommands.length;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m this.addCommand = function(command) {[1;35m\n[0m[31m previousCommandOffset = this.previousCommands.push(command);[1;35m\n[0m[31m[1;35m\n[0m[31m if (previousCommandOffset > MAX_STORAGE) {[1;35m\n[0m[31m this.previousCommands.splice(0, 1);[1;35m\n[0m[31m previousCommandOffset = MAX_STORAGE;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m if (hasLocalStorage) {[1;35m\n[0m[31m localStorage.setItem(STORAGE_KEY, JSON.stringify(this.previousCommands));[1;35m\n[0m[31m }[1;35m\n[0m[31m };[1;35m\n[0m[31m[1;35m\n[0m[31m this.navigate = function(offset) {[1;35m\n[0m[31m previousCommandOffset += offset;[1;35m\n[0m[31m[1;35m\n[0m[31m if (previousCommandOffset < 0) {[1;35m\n[0m[31m previousCommandOffset = -1;[1;35m\n[0m[31m return null;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m if (previousCommandOffset >= this.previousCommands.length) {[1;35m\n[0m[31m previousCommandOffset = this.previousCommands.length;[1;35m\n[0m[31m return null;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m return this.previousCommands[previousCommandOffset];[1;35m\n[0m[31m }[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31m// HTML strings for dynamic elements.[1;35m\n[0m[31mvar consoleInnerHtml = [1;35m\"[0m[31m<div class=[1;35m\\[0m[31m'resizer layer[1;35m\\[0m[31m'><[1;35m\\[0m[31m/div>[1;35m\\[0m[31mn<div class=[1;35m\\[0m[31m'console-outer layer[1;35m\\[0m[31m'>[1;35m\\[0m[31mn <div class=[1;35m\\[0m[31m'console-actions[1;35m\\[0m[31m'>[1;35m\\[0m[31mn <div class=[1;35m\\[0m[31m'close-button button[1;35m\\[0m[31m' title=[1;35m\\[0m[31m'close[1;35m\\[0m[31m'>x<[1;35m\\[0m[31m/div>[1;35m\\[0m[31mn <[1;35m\\[0m[31m/div>[1;35m\\[0m[31mn <div class=[1;35m\\[0m[31m'console-inner[1;35m\\[0m[31m'><[1;35m\\[0m[31m/div>[1;35m\\[0m[31mn<[1;35m\\[0m[31m/div>[1;35m\\[0m[31mn<input class=[1;35m\\[0m[31m'clipboard[1;35m\\[0m[31m' type=[1;35m\\[0m[31m'text[1;35m\\[0m[31m'>[1;35m\\[0m[31mn[1;35m\"[0m[31m[1;35m\n[0m[31m;[1;35m\n[0m[31mvar promptBoxHtml = [1;35m\"[0m[31m<span class=[1;35m\\[0m[31m'console-prompt-label[1;35m\\[0m[31m'><[1;35m\\[0m[31m/span>[1;35m\\[0m[31mn<pre class=[1;35m\\[0m[31m'console-prompt-display[1;35m\\[0m[31m'><[1;35m\\[0m[31m/pre>[1;35m\\[0m[31mn[1;35m\"[0m[31m[1;35m\n[0m[31m;[1;35m\n[0m[31m// CSS[1;35m\n[0m[31mvar consoleStyleCss = [1;35m\"[0m[31m.console .pos-absolute { position: absolute; }[1;35m\\[0m[31mn.console .pos-fixed { position: fixed; }[1;35m\\[0m[31mn.console .pos-right { right: 0; }[1;35m\\[0m[31mn.console .border-box { box-sizing: border-box; }[1;35m\\[0m[31mn.console .layer { width: 100%; height: 100%; }[1;35m\\[0m[31mn.console .layer.console-outer { z-index: 1; }[1;35m\\[0m[31mn.console .layer.resizer { z-index: 2; }[1;35m\\[0m[31mn.console { position: fixed; left: 0; bottom: 0; width: 100%; height: 148px; padding: 0; margin: 0; background: none repeat scroll 0% 0% #333; z-index: 9999; }[1;35m\\[0m[31mn.console .console-outer { overflow: auto; padding-top: 4px; }[1;35m\\[0m[31mn.console .console-inner { font-family: monospace; font-size: 11px; width: 100%; height: 100%; overflow: none; background: #333; }[1;35m\\[0m[31mn.console .console-prompt-box { color: #FFF; }[1;35m\\[0m[31mn.console .console-message { color: #1AD027; margin: 0; border: 0; white-space: pre-wrap; background-color: #333; padding: 0; }[1;35m\\[0m[31mn.console .console-message.error-message { color: #fc9; }[1;35m\\[0m[31mn.console .console-focus .console-cursor { background: #FEFEFE; color: #333; font-weight: bold; }[1;35m\\[0m[31mn.console .resizer { background: #333; width: 100%; height: 4px; cursor: ns-resize; }[1;35m\\[0m[31mn.console .console-actions { padding-right: 3px; }[1;35m\\[0m[31mn.console .console-actions .button { float: left; }[1;35m\\[0m[31mn.console .button { cursor: pointer; border-radius: 1px; font-family: monospace; font-size: 13px; width: 14px; height: 14px; line-height: 14px; text-align: center; color: #ccc; }[1;35m\\[0m[31mn.console .button:hover { background: #666; color: #fff; }[1;35m\\[0m[31mn.console .button.close-button:hover { background: #966; }[1;35m\\[0m[31mn.console .clipboard { height: 0px; padding: 0px; margin: 0px; width: 0px; margin-left: -1000px; }[1;35m\\[0m[31mn.console .console-prompt-label { display: inline; color: #FFF; background: none repeat scroll 0% 0% #333; border: 0; padding: 0; }[1;35m\\[0m[31mn.console .console-prompt-display { display: inline; color: #FFF; background: none repeat scroll 0% 0% #333; border: 0; padding: 0; }[1;35m\\[0m[31mn.console.full-screen { height: 100%; }[1;35m\\[0m[31mn.console.full-screen .console-outer { padding-top: 3px; }[1;35m\\[0m[31mn.console.full-screen .resizer { display: none; }[1;35m\\[0m[31mn.console.full-screen .close-button { display: none; }[1;35m\\[0m[31mn[1;35m\"[0m[31m[1;35m\n[0m[31m;[1;35m\n[0m[31m// Insert a style element with the unique ID[1;35m\n[0m[31mvar styleElementId = 'sr02459pvbvrmhco';[1;35m\n[0m[31m[1;35m\n[0m[31m// REPLConsole Constructor[1;35m\n[0m[31mfunction REPLConsole(config) {[1;35m\n[0m[31m function getConfig(key, defaultValue) {[1;35m\n[0m[31m return config && config[key] || defaultValue;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m this.commandStorage = new CommandStorage();[1;35m\n[0m[31m this.prompt = getConfig('promptLabel', ' >>');[1;35m\n[0m[31m this.mountPoint = getConfig('mountPoint');[1;35m\n[0m[31m this.sessionId = getConfig('sessionId');[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.getSessionUrl = function(path) {[1;35m\n[0m[31m var parts = [ this.mountPoint, 'repl_sessions', this.sessionId ];[1;35m\n[0m[31m if (path) {[1;35m\n[0m[31m parts.push(path);[1;35m\n[0m[31m }[1;35m\n[0m[31m // Join and remove duplicate slashes.[1;35m\n[0m[31m return parts.join('/').replace(/([^:][1;35m\\[0m[31m/)[1;35m\\[0m[31m/+/g, '$1');[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.commandHandle = function(line, callback) {[1;35m\n[0m[31m var self = this;[1;35m\n[0m[31m var params = 'input=' + encodeURIComponent(line);[1;35m\n[0m[31m callback = callback || function() {};[1;35m\n[0m[31m[1;35m\n[0m[31m function isSuccess(status) {[1;35m\n[0m[31m return status >= 200 && status < 300 || status === 304;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m function parseJSON(text) {[1;35m\n[0m[31m try {[1;35m\n[0m[31m return JSON.parse(text);[1;35m\n[0m[31m } catch (e) {[1;35m\n[0m[31m return null;[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m function getErrorText(xhr) {[1;35m\n[0m[31m if (!xhr.status) {[1;35m\n[0m[31m return [1;35m\"[0m[31mOops! Failed to connect to the Web Console middleware.[1;35m\\[0m[31mnPlease make sure a rails development server is running.[1;35m\\[0m[31mn[1;35m\"[0m[31m;[1;35m\n[0m[31m } else {[1;35m\n[0m[31m return xhr.status + ' ' + xhr.statusText;[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m putRequest(self.getSessionUrl(), params, function(xhr) {[1;35m\n[0m[31m var response = parseJSON(xhr.responseText);[1;35m\n[0m[31m var result = isSuccess(xhr.status);[1;35m\n[0m[31m if (result) {[1;35m\n[0m[31m self.writeOutput(response.output);[1;35m\n[0m[31m } else {[1;35m\n[0m[31m if (response && response.output) {[1;35m\n[0m[31m self.writeError(response.output);[1;35m\n[0m[31m } else {[1;35m\n[0m[31m self.writeError(getErrorText(xhr));[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m callback(result, response);[1;35m\n[0m[31m });[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.uninstall = function() {[1;35m\n[0m[31m this.container.parentNode.removeChild(this.container);[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.install = function(container) {[1;35m\n[0m[31m var _this = this;[1;35m\n[0m[31m[1;35m\n[0m[31m document.onkeydown = function(ev) {[1;35m\n[0m[31m if (_this.focused) { _this.onKeyDown(ev); }[1;35m\n[0m[31m };[1;35m\n[0m[31m[1;35m\n[0m[31m document.onkeypress = function(ev) {[1;35m\n[0m[31m if (_this.focused) { _this.onKeyPress(ev); }[1;35m\n[0m[31m };[1;35m\n[0m[31m[1;35m\n[0m[31m document.addEventListener('mousedown', function(ev) {[1;35m\n[0m[31m var el = ev.target || ev.srcElement;[1;35m\n[0m[31m[1;35m\n[0m[31m if (el) {[1;35m\n[0m[31m do {[1;35m\n[0m[31m if (el === container) {[1;35m\n[0m[31m _this.focus();[1;35m\n[0m[31m return;[1;35m\n[0m[31m }[1;35m\n[0m[31m } while (el = el.parentNode);[1;35m\n[0m[31m[1;35m\n[0m[31m _this.blur();[1;35m\n[0m[31m }[1;35m\n[0m[31m });[1;35m\n[0m[31m[1;35m\n[0m[31m // Render the console.[1;35m\n[0m[31m container.innerHTML = consoleInnerHtml;[1;35m\n[0m[31m[1;35m\n[0m[31m var consoleOuter = findChild(container, 'console-outer');[1;35m\n[0m[31m var consoleActions = findChild(consoleOuter, 'console-actions');[1;35m\n[0m[31m[1;35m\n[0m[31m addClass(container, 'console');[1;35m\n[0m[31m addClass(container.getElementsByClassName('layer'), 'pos-absolute border-box');[1;35m\n[0m[31m addClass(container.getElementsByClassName('button'), 'border-box');[1;35m\n[0m[31m addClass(consoleActions, 'pos-fixed pos-right');[1;35m\n[0m[31m[1;35m\n[0m[31m // Make the console resizable.[1;35m\n[0m[31m function resizeContainer(ev) {[1;35m\n[0m[31m var startY = ev.clientY;[1;35m\n[0m[31m var startHeight = parseInt(document.defaultView.getComputedStyle(container).height, 10);[1;35m\n[0m[31m var scrollTopStart = consoleOuter.scrollTop;[1;35m\n[0m[31m var clientHeightStart = consoleOuter.clientHeight;[1;35m\n[0m[31m[1;35m\n[0m[31m var doDrag = function(e) {[1;35m\n[0m[31m container.style.height = (startHeight + startY - e.clientY) + 'px';[1;35m\n[0m[31m consoleOuter.scrollTop = scrollTopStart + (clientHeightStart - consoleOuter.clientHeight);[1;35m\n[0m[31m shiftConsoleActions();[1;35m\n[0m[31m };[1;35m\n[0m[31m[1;35m\n[0m[31m var stopDrag = function(e) {[1;35m\n[0m[31m document.documentElement.removeEventListener('mousemove', doDrag, false);[1;35m\n[0m[31m document.documentElement.removeEventListener('mouseup', stopDrag, false);[1;35m\n[0m[31m };[1;35m\n[0m[31m[1;35m\n[0m[31m document.documentElement.addEventListener('mousemove', doDrag, false);[1;35m\n[0m[31m document.documentElement.addEventListener('mouseup', stopDrag, false);[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m function closeContainer(ev) {[1;35m\n[0m[31m container.parentNode.removeChild(container);[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m var shifted = false;[1;35m\n[0m[31m function shiftConsoleActions() {[1;35m\n[0m[31m if (consoleOuter.scrollHeight > consoleOuter.clientHeight) {[1;35m\n[0m[31m var widthDiff = document.documentElement.clientWidth - consoleOuter.clientWidth;[1;35m\n[0m[31m if (shifted || ! widthDiff) return;[1;35m\n[0m[31m shifted = true;[1;35m\n[0m[31m consoleActions.style.marginRight = widthDiff + 'px';[1;35m\n[0m[31m } else if (shifted) {[1;35m\n[0m[31m shifted = false;[1;35m\n[0m[31m consoleActions.style.marginRight = '0px';[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m // Initialize[1;35m\n[0m[31m this.container = container;[1;35m\n[0m[31m this.outer = consoleOuter;[1;35m\n[0m[31m this.inner = findChild(this.outer, 'console-inner');[1;35m\n[0m[31m this.clipboard = findChild(container, 'clipboard');[1;35m\n[0m[31m this.newPromptBox();[1;35m\n[0m[31m this.insertCss();[1;35m\n[0m[31m[1;35m\n[0m[31m findChild(container, 'resizer').addEventListener('mousedown', resizeContainer);[1;35m\n[0m[31m findChild(consoleActions, 'close-button').addEventListener('click', closeContainer);[1;35m\n[0m[31m consoleOuter.addEventListener('DOMNodeInserted', shiftConsoleActions);[1;35m\n[0m[31m[1;35m\n[0m[31m REPLConsole.currentSession = this;[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m// Add CSS styles dynamically. This probably doesnt work for IE <8.[1;35m\n[0m[31mREPLConsole.prototype.insertCss = function() {[1;35m\n[0m[31m if (document.getElementById(styleElementId)) {[1;35m\n[0m[31m return; // already inserted[1;35m\n[0m[31m }[1;35m\n[0m[31m var style = document.createElement('style');[1;35m\n[0m[31m style.type = 'text/css';[1;35m\n[0m[31m style.innerHTML = consoleStyleCss;[1;35m\n[0m[31m style.id = styleElementId;[1;35m\n[0m[31m document.getElementsByTagName('head')[0].appendChild(style);[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.focus = function() {[1;35m\n[0m[31m if (! this.focused) {[1;35m\n[0m[31m this.focused = true;[1;35m\n[0m[31m if (! hasClass(this.inner, [1;35m\"[0m[31mconsole-focus[1;35m\"[0m[31m)) {[1;35m\n[0m[31m addClass(this.inner, [1;35m\"[0m[31mconsole-focus[1;35m\"[0m[31m);[1;35m\n[0m[31m }[1;35m\n[0m[31m this.scrollToBottom();[1;35m\n[0m[31m }[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.blur = function() {[1;35m\n[0m[31m this.focused = false;[1;35m\n[0m[31m removeClass(this.inner, [1;35m\"[0m[31mconsole-focus[1;35m\"[0m[31m);[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m/**[1;35m\n[0m[31m * Add a new empty prompt box to the console.[1;35m\n[0m[31m */[1;35m\n[0m[31mREPLConsole.prototype.newPromptBox = function() {[1;35m\n[0m[31m // Remove the caret from previous prompt display if any.[1;35m\n[0m[31m if (this.promptDisplay) {[1;35m\n[0m[31m this.removeCaretFromPrompt();[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m var promptBox = document.createElement('div');[1;35m\n[0m[31m promptBox.className = [1;35m\"[0m[31mconsole-prompt-box[1;35m\"[0m[31m;[1;35m\n[0m[31m promptBox.innerHTML = promptBoxHtml;[1;35m\n[0m[31m this.promptLabel = promptBox.getElementsByClassName('console-prompt-label')[0];[1;35m\n[0m[31m this.promptDisplay = promptBox.getElementsByClassName('console-prompt-display')[0];[1;35m\n[0m[31m // Render the prompt box[1;35m\n[0m[31m this.setInput([1;35m\"[0m[31m[1;35m\"[0m[31m);[1;35m\n[0m[31m this.promptLabel.innerHTML = this.prompt;[1;35m\n[0m[31m this.inner.appendChild(promptBox);[1;35m\n[0m[31m this.scrollToBottom();[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m/**[1;35m\n[0m[31m * Remove the caret from the prompt box,[1;35m\n[0m[31m * mainly before adding a new prompt box.[1;35m\n[0m[31m * For simplicity, just re-render the prompt box[1;35m\n[0m[31m * with caret position -1.[1;35m\n[0m[31m */[1;35m\n[0m[31mREPLConsole.prototype.removeCaretFromPrompt = function() {[1;35m\n[0m[31m this.setInput(this._input, -1);[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.setInput = function(input, caretPos) {[1;35m\n[0m[31m this._caretPos = caretPos === undefined ? input.length : caretPos;[1;35m\n[0m[31m this._input = input;[1;35m\n[0m[31m this.renderInput();[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m/**[1;35m\n[0m[31m * Add some text to the existing input.[1;35m\n[0m[31m */[1;35m\n[0m[31mREPLConsole.prototype.addToInput = function(val, caretPos) {[1;35m\n[0m[31m caretPos = caretPos || this._caretPos;[1;35m\n[0m[31m var before = this._input.substring(0, caretPos);[1;35m\n[0m[31m var after = this._input.substring(caretPos, this._input.length);[1;35m\n[0m[31m var newInput = before + val + after;[1;35m\n[0m[31m this.setInput(newInput, caretPos + val.length);[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m/**[1;35m\n[0m[31m * Render the input prompt. This is called whenever[1;35m\n[0m[31m * the user input changes, sometimes not very efficient.[1;35m\n[0m[31m */[1;35m\n[0m[31mREPLConsole.prototype.renderInput = function() {[1;35m\n[0m[31m // Clear the current input.[1;35m\n[0m[31m removeAllChildren(this.promptDisplay);[1;35m\n[0m[31m[1;35m\n[0m[31m var promptCursor = document.createElement('span');[1;35m\n[0m[31m promptCursor.className = [1;35m\"[0m[31mconsole-cursor[1;35m\"[0m[31m;[1;35m\n[0m[31m var before, current, after;[1;35m\n[0m[31m[1;35m\n[0m[31m if (this._caretPos < 0) {[1;35m\n[0m[31m before = this._input;[1;35m\n[0m[31m current = after = [1;35m\"[0m[31m[1;35m\"[0m[31m;[1;35m\n[0m[31m } else if (this._caretPos === this._input.length) {[1;35m\n[0m[31m before = this._input;[1;35m\n[0m[31m current = [1;35m\"[0m[31m[1;35m\\[0m[31mu00A0[1;35m\"[0m[31m;[1;35m\n[0m[31m after = [1;35m\"[0m[31m[1;35m\"[0m[31m;[1;35m\n[0m[31m } else {[1;35m\n[0m[31m before = this._input.substring(0, this._caretPos);[1;35m\n[0m[31m current = this._input.charAt(this._caretPos);[1;35m\n[0m[31m after = this._input.substring(this._caretPos + 1, this._input.length);[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m this.promptDisplay.appendChild(document.createTextNode(before));[1;35m\n[0m[31m promptCursor.appendChild(document.createTextNode(current));[1;35m\n[0m[31m this.promptDisplay.appendChild(promptCursor);[1;35m\n[0m[31m this.promptDisplay.appendChild(document.createTextNode(after));[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.writeOutput = function(output) {[1;35m\n[0m[31m var consoleMessage = document.createElement('pre');[1;35m\n[0m[31m consoleMessage.className = [1;35m\"[0m[31mconsole-message[1;35m\"[0m[31m;[1;35m\n[0m[31m consoleMessage.innerHTML = escapeHTML(output);[1;35m\n[0m[31m this.inner.appendChild(consoleMessage);[1;35m\n[0m[31m this.newPromptBox();[1;35m\n[0m[31m return consoleMessage;[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.writeError = function(output) {[1;35m\n[0m[31m var consoleMessage = this.writeOutput(output);[1;35m\n[0m[31m addClass(consoleMessage, [1;35m\"[0m[31merror-message[1;35m\"[0m[31m);[1;35m\n[0m[31m return consoleMessage;[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.onEnterKey = function() {[1;35m\n[0m[31m var input = this._input;[1;35m\n[0m[31m[1;35m\n[0m[31m if(input != [1;35m\"[0m[31m[1;35m\"[0m[31m && input !== undefined) {[1;35m\n[0m[31m this.commandStorage.addCommand(input);[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m this.commandHandle(input);[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.onNavigateHistory = function(offset) {[1;35m\n[0m[31m var command = this.commandStorage.navigate(offset) || [1;35m\"[0m[31m[1;35m\"[0m[31m;[1;35m\n[0m[31m this.setInput(command);[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m/**[1;35m\n[0m[31m * Handle control keys like up, down, left, right.[1;35m\n[0m[31m */[1;35m\n[0m[31mREPLConsole.prototype.onKeyDown = function(ev) {[1;35m\n[0m[31m switch (ev.keyCode) {[1;35m\n[0m[31m case 13:[1;35m\n[0m[31m // Enter key[1;35m\n[0m[31m this.onEnterKey();[1;35m\n[0m[31m ev.preventDefault();[1;35m\n[0m[31m break;[1;35m\n[0m[31m case 80:[1;35m\n[0m[31m // Ctrl-P[1;35m\n[0m[31m if (! ev.ctrlKey) break;[1;35m\n[0m[31m case 38:[1;35m\n[0m[31m // Up arrow[1;35m\n[0m[31m this.onNavigateHistory(-1);[1;35m\n[0m[31m ev.preventDefault();[1;35m\n[0m[31m break;[1;35m\n[0m[31m case 78:[1;35m\n[0m[31m // Ctrl-N[1;35m\n[0m[31m if (! ev.ctrlKey) break;[1;35m\n[0m[31m case 40:[1;35m\n[0m[31m // Down arrow[1;35m\n[0m[31m this.onNavigateHistory(1);[1;35m\n[0m[31m ev.preventDefault();[1;35m\n[0m[31m break;[1;35m\n[0m[31m case 37:[1;35m\n[0m[31m // Left arrow[1;35m\n[0m[31m var caretPos = this._caretPos > 0 ? this._caretPos - 1 : this._caretPos;[1;35m\n[0m[31m this.setInput(this._input, caretPos);[1;35m\n[0m[31m ev.preventDefault();[1;35m\n[0m[31m break;[1;35m\n[0m[31m case 39:[1;35m\n[0m[31m // Right arrow[1;35m\n[0m[31m var length = this._input.length;[1;35m\n[0m[31m var caretPos = this._caretPos < length ? this._caretPos + 1 : this._caretPos;[1;35m\n[0m[31m this.setInput(this._input, caretPos);[1;35m\n[0m[31m ev.preventDefault();[1;35m\n[0m[31m break;[1;35m\n[0m[31m case 8:[1;35m\n[0m[31m // Delete[1;35m\n[0m[31m this.deleteAtCurrent();[1;35m\n[0m[31m ev.preventDefault();[1;35m\n[0m[31m break;[1;35m\n[0m[31m default:[1;35m\n[0m[31m break;[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m if (ev.ctrlKey || ev.metaKey) {[1;35m\n[0m[31m // Set focus to our clipboard in case they hit the [1;35m\"[0m[31mv[1;35m\"[0m[31m key[1;35m\n[0m[31m this.clipboard.focus();[1;35m\n[0m[31m if (ev.keyCode == 86) {[1;35m\n[0m[31m // Pasting to clipboard doesn't happen immediately,[1;35m\n[0m[31m // so we have to wait for a while to get the pasted text.[1;35m\n[0m[31m var _this = this;[1;35m\n[0m[31m setTimeout(function() {[1;35m\n[0m[31m _this.addToInput(_this.clipboard.value);[1;35m\n[0m[31m _this.clipboard.value = [1;35m\"[0m[31m[1;35m\"[0m[31m;[1;35m\n[0m[31m _this.clipboard.blur();[1;35m\n[0m[31m }, 10);[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m ev.stopPropagation();[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m/**[1;35m\n[0m[31m * Handle input key press.[1;35m\n[0m[31m */[1;35m\n[0m[31mREPLConsole.prototype.onKeyPress = function(ev) {[1;35m\n[0m[31m // Only write to the console if it's a single key press.[1;35m\n[0m[31m if (ev.ctrlKey || ev.metaKey) { return; }[1;35m\n[0m[31m var keyCode = ev.keyCode || ev.which;[1;35m\n[0m[31m this.insertAtCurrent(String.fromCharCode(keyCode));[1;35m\n[0m[31m ev.stopPropagation();[1;35m\n[0m[31m ev.preventDefault();[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m/**[1;35m\n[0m[31m * Delete a character at the current position.[1;35m\n[0m[31m */[1;35m\n[0m[31mREPLConsole.prototype.deleteAtCurrent = function() {[1;35m\n[0m[31m if (this._caretPos > 0) {[1;35m\n[0m[31m var caretPos = this._caretPos - 1;[1;35m\n[0m[31m var before = this._input.substring(0, caretPos);[1;35m\n[0m[31m var after = this._input.substring(this._caretPos, this._input.length);[1;35m\n[0m[31m this.setInput(before + after, caretPos);[1;35m\n[0m[31m }[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m/**[1;35m\n[0m[31m * Insert a character at the current position.[1;35m\n[0m[31m */[1;35m\n[0m[31mREPLConsole.prototype.insertAtCurrent = function(char) {[1;35m\n[0m[31m var before = this._input.substring(0, this._caretPos);[1;35m\n[0m[31m var after = this._input.substring(this._caretPos, this._input.length);[1;35m\n[0m[31m this.setInput(before + char + after, this._caretPos + 1);[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.prototype.scrollToBottom = function() {[1;35m\n[0m[31m this.outer.scrollTop = this.outer.scrollHeight;[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m// Change the binding of the console[1;35m\n[0m[31mREPLConsole.prototype.switchBindingTo = function(frameId, callback) {[1;35m\n[0m[31m var url = this.getSessionUrl('trace');[1;35m\n[0m[31m var params = [1;35m\"[0m[31mframe_id=[1;35m\"[0m[31m + encodeURIComponent(frameId);[1;35m\n[0m[31m postRequest(url, params, callback);[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m/**[1;35m\n[0m[31m * Install the console into the element with a specific ID.[1;35m\n[0m[31m * Example: REPLConsole.installInto([1;35m\"[0m[31mtarget-id[1;35m\"[0m[31m)[1;35m\n[0m[31m */[1;35m\n[0m[31mREPLConsole.installInto = function(id, options) {[1;35m\n[0m[31m var consoleElement = document.getElementById(id);[1;35m\n[0m[31m[1;35m\n[0m[31m options = options || {};[1;35m\n[0m[31m[1;35m\n[0m[31m for (var prop in consoleElement.dataset) {[1;35m\n[0m[31m options[prop] = options[prop] || consoleElement.dataset[prop];[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m var replConsole = new REPLConsole(options);[1;35m\n[0m[31m replConsole.install(consoleElement);[1;35m\n[0m[31m return replConsole;[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m// This is to store the latest single session, and the stored session[1;35m\n[0m[31m// is updated by the REPLConsole#install() method.[1;35m\n[0m[31m// It allows to operate the current session from the other scripts.[1;35m\n[0m[31mREPLConsole.currentSession = null;[1;35m\n[0m[31m[1;35m\n[0m[31m// This line is for the Firefox Add-on, because it doesn't have XMLHttpRequest as default.[1;35m\n[0m[31m// And so we need to require a module compatible with XMLHttpRequest from SDK.[1;35m\n[0m[31mREPLConsole.XMLHttpRequest = typeof XMLHttpRequest === 'undefined' ? null : XMLHttpRequest;[1;35m\n[0m[31m[1;35m\n[0m[31mREPLConsole.request = function request(method, url, params, callback) {[1;35m\n[0m[31m var xhr = new REPLConsole.XMLHttpRequest();[1;35m\n[0m[31m[1;35m\n[0m[31m xhr.open(method, url, true);[1;35m\n[0m[31m xhr.setRequestHeader([1;35m\"[0m[31mContent-Type[1;35m\"[0m[31m, [1;35m\"[0m[31mapplication/x-www-form-urlencoded[1;35m\"[0m[31m);[1;35m\n[0m[31m xhr.setRequestHeader([1;35m\"[0m[31mX-Requested-With[1;35m\"[0m[31m, [1;35m\"[0m[31mXMLHttpRequest[1;35m\"[0m[31m);[1;35m\n[0m[31m xhr.setRequestHeader([1;35m\"[0m[31mAccept[1;35m\"[0m[31m, [1;35m\"[0m[31mapplication/vnd.web-console.v2[1;35m\"[0m[31m);[1;35m\n[0m[31m xhr.send(params);[1;35m\n[0m[31m[1;35m\n[0m[31m xhr.onreadystatechange = function() {[1;35m\n[0m[31m if (xhr.readyState === 4) {[1;35m\n[0m[31m callback(xhr);[1;35m\n[0m[31m }[1;35m\n[0m[31m };[1;35m\n[0m[31m};[1;35m\n[0m[31m[1;35m\n[0m[31m// DOM helpers[1;35m\n[0m[31mfunction hasClass(el, className) {[1;35m\n[0m[31m var regex = new RegExp('(?:^|[1;35m\\[0m[31m[1;35m\\[0m[31ms)' + className + '(?![1;35m\\[0m[31m[1;35m\\[0m[31mS)', 'g');[1;35m\n[0m[31m return el.className && el.className.match(regex);[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mfunction isNodeList(el) {[1;35m\n[0m[31m return typeof el.length === 'number' &&[1;35m\n[0m[31m typeof el.item === 'function';[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mfunction addClass(el, className) {[1;35m\n[0m[31m if (isNodeList(el)) {[1;35m\n[0m[31m for (var i = 0; i < el.length; ++ i) {[1;35m\n[0m[31m addClass(el[i], className);[1;35m\n[0m[31m }[1;35m\n[0m[31m } else {[1;35m\n[0m[31m el.className += [1;35m\"[0m[31m [1;35m\"[0m[31m + className;[1;35m\n[0m[31m }[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mfunction removeClass(el, className) {[1;35m\n[0m[31m var regex = new RegExp('(?:^|[1;35m\\[0m[31m[1;35m\\[0m[31ms)' + className + '(?![1;35m\\[0m[31m[1;35m\\[0m[31mS)', 'g');[1;35m\n[0m[31m el.className = el.className.replace(regex, '');[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mfunction removeAllChildren(el) {[1;35m\n[0m[31m while (el.firstChild) {[1;35m\n[0m[31m el.removeChild(el.firstChild);[1;35m\n[0m[31m }[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mfunction findChild(el, className) {[1;35m\n[0m[31m for (var i = 0; i < el.childNodes.length; ++ i) {[1;35m\n[0m[31m if (hasClass(el.childNodes[i], className)) {[1;35m\n[0m[31m return el.childNodes[i];[1;35m\n[0m[31m }[1;35m\n[0m[31m }[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mfunction escapeHTML(html) {[1;35m\n[0m[31m return html[1;35m\n[0m[31m .replace(/&/g, '&')[1;35m\n[0m[31m .replace(/</g, '<')[1;35m\n[0m[31m .replace(/>/g, '>')[1;35m\n[0m[31m .replace(/[1;35m\"[0m[31m/g, '"')[1;35m\n[0m[31m .replace(/'/g, ''')[1;35m\n[0m[31m .replace(/`/g, '`');[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31m// XHR helpers[1;35m\n[0m[31mfunction postRequest() {[1;35m\n[0m[31m REPLConsole.request.apply(this, [[1;35m\"[0m[31mPOST[1;35m\"[0m[31m].concat([].slice.call(arguments)));[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mfunction putRequest() {[1;35m\n[0m[31m REPLConsole.request.apply(this, [[1;35m\"[0m[31mPUT[1;35m\"[0m[31m].concat([].slice.call(arguments)));[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mif (typeof exports === 'object') {[1;35m\n[0m[31m exports.REPLConsole = REPLConsole;[1;35m\n[0m[31m} else {[1;35m\n[0m[31m window.REPLConsole = REPLConsole;[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31m}).call(this);[1;35m\n[0m[31m</script>[1;35m\n[0m[31m[1;35m\n[0m[31m<script type=[1;35m\"[0m[31mtext/javascript[1;35m\"[0m[31m>[1;35m\n[0m[31m(function() {[1;35m\n[0m[31m REPLConsole.installInto('console');[1;35m\n[0m[31m[1;35m\n[0m[31m}).call(this);[1;35m\n[0m[31m</script>[1;35m\n[0m[31m[1;35m\n[0m[31m[1;35m\n[0m[31m <script type=[1;35m\"[0m[31mtext/javascript[1;35m\"[0m[31m>[1;35m\n[0m[31m(function() {[1;35m\n[0m[31m // Try intercept traces links in Rails 4.2.[1;35m\n[0m[31mvar traceFrames = document.getElementsByClassName('trace-frames');[1;35m\n[0m[31mvar selectedFrame, currentSource = document.getElementById('frame-source-0');[1;35m\n[0m[31m[1;35m\n[0m[31m// Add click listeners for all stack frames[1;35m\n[0m[31mfor (var i = 0; i < traceFrames.length; i++) {[1;35m\n[0m[31m traceFrames[i].addEventListener('click', function(e) {[1;35m\n[0m[31m e.preventDefault();[1;35m\n[0m[31m var target = e.target;[1;35m\n[0m[31m var frameId = target.dataset.frameId;[1;35m\n[0m[31m[1;35m\n[0m[31m // Change the binding of the console.[1;35m\n[0m[31m changeBinding(frameId, function() {[1;35m\n[0m[31m if (selectedFrame) {[1;35m\n[0m[31m selectedFrame.className = selectedFrame.className.replace([1;35m\"[0m[31mselected[1;35m\"[0m[31m, [1;35m\"[0m[31m[1;35m\"[0m[31m);[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m target.className += [1;35m\"[0m[31m selected[1;35m\"[0m[31m;[1;35m\n[0m[31m selectedFrame = target;[1;35m\n[0m[31m });[1;35m\n[0m[31m[1;35m\n[0m[31m // Change the extracted source code[1;35m\n[0m[31m changeSourceExtract(frameId);[1;35m\n[0m[31m });[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mfunction changeBinding(frameId, callback) {[1;35m\n[0m[31m REPLConsole.currentSession.switchBindingTo(frameId, callback);[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31mfunction changeSourceExtract(frameId) {[1;35m\n[0m[31m var el = document.getElementById('frame-source-' + frameId);[1;35m\n[0m[31m if (currentSource && el) {[1;35m\n[0m[31m currentSource.className += [1;35m\"[0m[31m hidden[1;35m\"[0m[31m;[1;35m\n[0m[31m el.className = el.className.replace([1;35m\"[0m[31m hidden[1;35m\"[0m[31m, [1;35m\"[0m[31m[1;35m\"[0m[31m);[1;35m\n[0m[31m currentSource = el;[1;35m\n[0m[31m }[1;35m\n[0m[31m}[1;35m\n[0m[31m[1;35m\n[0m[31m// Push the error page body upwards the size of the console.[1;35m\n[0m[31m//[1;35m\n[0m[31m// While, I wouldn't like to do that on every custom page (so I don't screw[1;35m\n[0m[31m// user's layouts), I think a lot of developers want to see all of the content[1;35m\n[0m[31m// on the default Rails error page.[1;35m\n[0m[31m//[1;35m\n[0m[31m// Since it's quite special as is now, being a bit more special in the name of[1;35m\n[0m[31m// better user experience, won't hurt.[1;35m\n[0m[31mdocument.addEventListener('DOMContentLoaded', function() {[1;35m\n[0m[31m var consoleElement = document.getElementById('console');[1;35m\n[0m[31m var resizerElement = consoleElement.getElementsByClassName('resizer')[0];[1;35m\n[0m[31m var containerElement = document.getElementById('container');[1;35m\n[0m[31m[1;35m\n[0m[31m function setContainerElementBottomMargin(pixels) {[1;35m\n[0m[31m containerElement.style.marginBottom = pixels + 'px';[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m var currentConsoleElementHeight = consoleElement.offsetHeight;[1;35m\n[0m[31m setContainerElementBottomMargin(currentConsoleElementHeight);[1;35m\n[0m[31m[1;35m\n[0m[31m resizerElement.addEventListener('mousedown', function(event) {[1;35m\n[0m[31m function recordConsoleElementHeight(event) {[1;35m\n[0m[31m resizerElement.removeEventListener('mouseup', recordConsoleElementHeight);[1;35m\n[0m[31m[1;35m\n[0m[31m var currentConsoleElementHeight = consoleElement.offsetHeight;[1;35m\n[0m[31m setContainerElementBottomMargin(currentConsoleElementHeight);[1;35m\n[0m[31m }[1;35m\n[0m[31m[1;35m\n[0m[31m resizerElement.addEventListener('mouseup', recordConsoleElementHeight);[1;35m\n[0m[31m });[1;35m\n[0m[31m});[1;35m\n[0m[31m[1;35m\n[0m[31m}).call(this);[1;35m\n[0m[31m</script>[1;35m\n[0m[31m[1;35m\n[0m[31m</body>[1;35m\n[0m[31m</html>[1;35m\n[0m[31m[1;31m"[0m[31m[0m