aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2009-12-30 14:01:05 -0800
committerJeremy Kemper <jeremy@bitsweat.net>2009-12-30 14:01:05 -0800
commit3a29aa3abc6dfe4ded89fd6ba5ac840f8ff5e184 (patch)
tree5ec02e6fde3140626888623ae5ac960e84a4dc2f /activerecord/lib
parent0c7c842d8f803c53c7b0a149fec29f4d3b0b2f04 (diff)
parent4ecdf24bdedfdd1cca1f079259ff2490e2074067 (diff)
downloadrails-3a29aa3abc6dfe4ded89fd6ba5ac840f8ff5e184.tar.gz
rails-3a29aa3abc6dfe4ded89fd6ba5ac840f8ff5e184.tar.bz2
rails-3a29aa3abc6dfe4ded89fd6ba5ac840f8ff5e184.zip
Merge commit 'josevalim/arlog'
Diffstat (limited to 'activerecord/lib')
-rwxr-xr-xactiverecord/lib/active_record/base.rb1
-rwxr-xr-xactiverecord/lib/active_record/connection_adapters/abstract_adapter.rb10
-rw-r--r--activerecord/lib/active_record/controller_runtime.rb27
-rw-r--r--activerecord/lib/active_record/rails.rb3
-rw-r--r--activerecord/lib/active_record/rails/controller_runtime.rb29
5 files changed, 38 insertions, 32 deletions
diff --git a/activerecord/lib/active_record/base.rb b/activerecord/lib/active_record/base.rb
index 07c5545171..c4bdbdad08 100755
--- a/activerecord/lib/active_record/base.rb
+++ b/activerecord/lib/active_record/base.rb
@@ -1,4 +1,3 @@
-require 'benchmark'
require 'yaml'
require 'set'
require 'active_support/benchmarkable'
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
index 8fae26b790..d09aa3c4d2 100755
--- a/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
+++ b/activerecord/lib/active_record/connection_adapters/abstract_adapter.rb
@@ -1,6 +1,7 @@
require 'date'
require 'bigdecimal'
require 'bigdecimal/util'
+require 'active_support/core_ext/benchmark'
# TODO: Autoload these files
require 'active_record/connection_adapters/abstract/schema_definitions'
@@ -191,7 +192,6 @@ module ActiveRecord
end
def log_info(sql, name, ms)
- @runtime += ms
if @logger && @logger.debug?
name = '%s (%.1fms)' % [name || 'SQL', ms]
@logger.debug(format_log_entry(name, sql.squeeze(' ')))
@@ -199,8 +199,12 @@ module ActiveRecord
end
protected
- def log(sql, name, &block)
- ActiveSupport::Notifications.instrument(:sql, :sql => sql, :name => name, &block)
+ def log(sql, name)
+ result = nil
+ ActiveSupport::Notifications.instrument(:sql, :sql => sql, :name => name) do
+ @runtime += Benchmark.ms { result = yield }
+ end
+ result
rescue Exception => e
# Log message and raise exception.
# Set last_verification to 0, so that connection gets verified
diff --git a/activerecord/lib/active_record/controller_runtime.rb b/activerecord/lib/active_record/controller_runtime.rb
deleted file mode 100644
index 1281901ae8..0000000000
--- a/activerecord/lib/active_record/controller_runtime.rb
+++ /dev/null
@@ -1,27 +0,0 @@
-module ActiveRecord
- module ControllerRuntime
- extend ActiveSupport::Concern
-
- attr_internal :db_runtime
-
- def cleanup_view_runtime
- if Object.const_defined?("ActiveRecord") && ActiveRecord::Base.connected?
- db_rt_before_render = ActiveRecord::Base.connection.reset_runtime
- runtime = super
- db_rt_after_render = ActiveRecord::Base.connection.reset_runtime
- self.db_runtime = db_rt_before_render + db_rt_after_render
- runtime - db_rt_after_render
- else
- super
- end
- end
-
- module ClassMethods
- def process_log_action(controller)
- super
- db_runtime = controller.send :db_runtime
- logger.info(" ActiveRecord runtime: %.1fms" % db_runtime.to_f) if db_runtime
- end
- end
- end
-end \ No newline at end of file
diff --git a/activerecord/lib/active_record/rails.rb b/activerecord/lib/active_record/rails.rb
index e7de699974..69f38e75c8 100644
--- a/activerecord/lib/active_record/rails.rb
+++ b/activerecord/lib/active_record/rails.rb
@@ -3,13 +3,14 @@
# here. This is needed for correctly setting up the middleware.
# In the future, this might become an optional require.
require "action_controller/rails"
+require "active_record/rails/controller_runtime"
module ActiveRecord
class Plugin < Rails::Plugin
plugin_name :active_record
include_modules_in "ActiveRecord::Base"
- config.action_controller.include "ActiveRecord::ControllerRuntime"
+ config.action_controller.include "ActiveRecord::Rails::ControllerRuntime"
rake_tasks do
load "active_record/rails/databases.rake"
diff --git a/activerecord/lib/active_record/rails/controller_runtime.rb b/activerecord/lib/active_record/rails/controller_runtime.rb
new file mode 100644
index 0000000000..9ae40c5c8f
--- /dev/null
+++ b/activerecord/lib/active_record/rails/controller_runtime.rb
@@ -0,0 +1,29 @@
+module ActiveRecord
+ module Rails
+ module ControllerRuntime
+ extend ActiveSupport::Concern
+
+ attr_internal :db_runtime
+
+ def cleanup_view_runtime
+ if ActiveRecord::Base.connected?
+ db_rt_before_render = ActiveRecord::Base.connection.reset_runtime
+ runtime = super
+ db_rt_after_render = ActiveRecord::Base.connection.reset_runtime
+ self.db_runtime = db_rt_before_render + db_rt_after_render
+ runtime - db_rt_after_render
+ else
+ super
+ end
+ end
+
+ module ClassMethods
+ def log_process_action(controller)
+ super
+ db_runtime = controller.send :db_runtime
+ logger.info(" ActiveRecord runtime: %.1fms" % db_runtime.to_f) if db_runtime
+ end
+ end
+ end
+ end
+end \ No newline at end of file