31
32
33
34
35
36
37
38
39
40
41
42
43
|
# File 'lib/explain-query/explain-query.rb', line 31
def explain
raise(ArgumentError, "No block given") if !block_given?
begin
ActiveRecord::ConnectionAdapters::MysqlAdapter.send(:alias_method, :select_without_explain, :select)
ActiveRecord::ConnectionAdapters::MysqlAdapter.send(:alias_method, :select, :select_with_explain)
result = yield
ensure
ActiveRecord::ConnectionAdapters::MysqlAdapter.send(:alias_method, :select_with_explain, :select)
ActiveRecord::ConnectionAdapters::MysqlAdapter.send(:alias_method, :select, :select_without_explain)
end
result
end
|