diff --git a/lib/rack/bug/filtered_backtrace.rb b/lib/rack/bug/filtered_backtrace.rb
index 310c290..5481d33 100644
--- a/lib/rack/bug/filtered_backtrace.rb
+++ b/lib/rack/bug/filtered_backtrace.rb
@@ -19,7 +19,7 @@ def filtered_backtrace
def root_for_backtrace_filtering(sub_path = nil)
if defined?(Rails) && Rails.respond_to?(:root)
- sub_path ? Rails.root.join(sub_path) : Rails.root
+ (sub_path ? Rails.root.join(sub_path) : Rails.root).to_s
else
root = if defined?(RAILS_ROOT)
RAILS_ROOT
diff --git a/lib/rack/bug/panels/templates_panel.rb b/lib/rack/bug/panels/templates_panel.rb
index a971886..9f874c3 100644
--- a/lib/rack/bug/panels/templates_panel.rb
+++ b/lib/rack/bug/panels/templates_panel.rb
@@ -7,12 +7,15 @@ class TemplatesPanel < Panel
autoload :Trace, "rack/bug/panels/templates_panel/trace"
autoload :Rendering, "rack/bug/panels/templates_panel/rendering"
- def self.record(template, &block)
- return block.call unless Rack::Bug.enabled?
+ def self.record(template)
+ return yield unless Rack::Bug.enabled?
template_trace.start(template)
- result = block.call
- template_trace.finished(template)
+ begin
+ result = yield
+ ensure
+ template_trace.finished(template)
+ end
return result
end
diff --git a/lib/rack/bug/render.rb b/lib/rack/bug/render.rb
index c15df14..dd80a40 100644
--- a/lib/rack/bug/render.rb
+++ b/lib/rack/bug/render.rb
@@ -1,3 +1,4 @@
+# encoding: utf-8
require "erb"
module Rack
diff --git a/lib/rack/bug/views/panels/execute_sql.html.erb b/lib/rack/bug/views/panels/execute_sql.html.erb
index e5a6457..d62a26f 100644
--- a/lib/rack/bug/views/panels/execute_sql.html.erb
+++ b/lib/rack/bug/views/panels/execute_sql.html.erb
@@ -13,8 +13,14 @@
- <% result.fetch_fields.each do |field| %>
- <%= field.name.upcase %> |
+ <% if defined?(Mysql2) %>
+ <% result.fields.each do |field| %>
+ <%= field.upcase %> |
+ <% end %>
+ <% else %>
+ <% result.fetch_fields.each do |field| %>
+ <%= field.name.upcase %> |
+ <% end %>
<% end %>
diff --git a/lib/rack/bug/views/panels/explain_sql.html.erb b/lib/rack/bug/views/panels/explain_sql.html.erb
index 27243e7..50e3f69 100644
--- a/lib/rack/bug/views/panels/explain_sql.html.erb
+++ b/lib/rack/bug/views/panels/explain_sql.html.erb
@@ -13,10 +13,16 @@
- <% result.fetch_fields.each do |field| %>
- <%= field.name.upcase %> |
+ <% if defined?(Mysql2) %>
+ <% result.fields.each do |field| %>
+ <%= field.upcase %> |
+ <% end %>
+ <% else %>
+ <% result.fetch_fields.each do |field| %>
+ <%= field.name.upcase %> |
+ <% end %>
<% end %>
-
+
<% i = 1 %>
diff --git a/lib/rack/bug/views/panels/profile_sql.html.erb b/lib/rack/bug/views/panels/profile_sql.html.erb
index add3e58..1a5bd82 100644
--- a/lib/rack/bug/views/panels/profile_sql.html.erb
+++ b/lib/rack/bug/views/panels/profile_sql.html.erb
@@ -13,8 +13,14 @@
- <% result.fetch_fields.each do |field| %>
- <%= field.name.upcase %> |
+ <% if defined?(Mysql2) %>
+ <% result.fields.each do |field| %>
+ <%= field.upcase %> |
+ <% end %>
+ <% else %>
+ <% result.fetch_fields.each do |field| %>
+ <%= field.name.upcase %> |
+ <% end %>
<% end %>