aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack
diff options
context:
space:
mode:
authorJeremy Kemper <jeremy@bitsweat.net>2005-11-16 09:00:23 +0000
committerJeremy Kemper <jeremy@bitsweat.net>2005-11-16 09:00:23 +0000
commitede505592cfab0212e53ca8ad1c38026a7b5d042 (patch)
treed4d2929cd33146d82a663a68fc4eccfcce8a28cb /actionpack
parenteb1dd6a2067be548ebd4328c390d91e5abc6d81d (diff)
downloadrails-ede505592cfab0212e53ca8ad1c38026a7b5d042.tar.gz
rails-ede505592cfab0212e53ca8ad1c38026a7b5d042.tar.bz2
rails-ede505592cfab0212e53ca8ad1c38026a7b5d042.zip
Avoid logging code if logger is nil. Closes #2881.
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@3056 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'actionpack')
-rw-r--r--actionpack/CHANGELOG2
-rw-r--r--actionpack/lib/action_view/partials.rb19
2 files changed, 16 insertions, 5 deletions
diff --git a/actionpack/CHANGELOG b/actionpack/CHANGELOG
index 843f8f0614..11128dcf6e 100644
--- a/actionpack/CHANGELOG
+++ b/actionpack/CHANGELOG
@@ -1,6 +1,6 @@
*SVN*
-* Use Set instead of Array to speed up prototype helper include? calls. #2880 [Stefan Kaes]
+* Performance tweaks: use Set instead of Array to speed up prototype helper include? calls. Avoid logging code if logger is nil. #2880, #2881 [Stefan Kaes]
* MemCache store may be given multiple addresses. #2869 [Ryan Carver <ryan@fivesevensix.com>]
diff --git a/actionpack/lib/action_view/partials.rb b/actionpack/lib/action_view/partials.rb
index 21292161ea..aaef0c4f3d 100644
--- a/actionpack/lib/action_view/partials.rb
+++ b/actionpack/lib/action_view/partials.rb
@@ -54,7 +54,11 @@ module ActionView
add_counter_to_local_assigns!(partial_name, local_assigns)
add_object_to_local_assigns!(partial_name, local_assigns, object)
- ActionController::Base.benchmark("Rendered #{path}/_#{partial_name}", Logger::DEBUG, false) do
+ if logger
+ ActionController::Base.benchmark("Rendered #{path}/_#{partial_name}", Logger::DEBUG, false) do
+ render("#{path}/_#{partial_name}", local_assigns)
+ end
+ else
render("#{path}/_#{partial_name}", local_assigns)
end
end
@@ -111,10 +115,17 @@ module ActionView
counter_name = partial_counter_name(partial_name)
local_assigns[counter_name] = 1 unless local_assigns.has_key?(counter_name)
end
-
+
def add_object_to_local_assigns!(partial_name, local_assigns, object)
- local_assigns[partial_name.intern] ||= object.is_a?(ActionView::Base::ObjectWrapper) ? object.value : object
- local_assigns[partial_name.intern] ||= controller.instance_variable_get("@#{partial_name}")
+ local_assigns[partial_name.intern] ||= unwrap_object(object) || controller.instance_variable_get("@#{partial_name}")
+ end
+
+ def unwrap_object(object)
+ if object.is_a?(ActionView::Base::ObjectWrapper)
+ object.value
+ else
+ object
+ end
end
end
end