diff options
author | Tim Lucas <t.lucas@toolmantim.com> | 2011-09-07 14:21:18 +0300 |
---|---|---|
committer | Tim Lucas <t.lucas@toolmantim.com> | 2011-09-07 14:21:18 +0300 |
commit | 2147f35df251f215d845e870f21fd4010976eba3 (patch) | |
tree | 07a54399fd167a64acb9a511114990348d6430f0 /activesupport/lib/active_support/values | |
parent | 2b354fed34ba78797c9fbe1d0f29c0337f9f6411 (diff) | |
download | rails-2147f35df251f215d845e870f21fd4010976eba3.tar.gz rails-2147f35df251f215d845e870f21fd4010976eba3.tar.bz2 rails-2147f35df251f215d845e870f21fd4010976eba3.zip |
Make sure require_tzinfo only calls Kernel#require if TZInfo isn't already present.
This wasn't a problem when require_tzinfo was only called from TimeZone#initialize, but now it's being called for every lookup to TimeZone.[] (via lazy_zones_map)
TimeZone lookup can occur when unmarshalling TimeWithZone objects, which is where I first saw the big slowdown (500ms for each Rails action that loaded from Rails.cache)
Diffstat (limited to 'activesupport/lib/active_support/values')
-rw-r--r-- | activesupport/lib/active_support/values/time_zone.rb | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/activesupport/lib/active_support/values/time_zone.rb b/activesupport/lib/active_support/values/time_zone.rb index 4fb487ade1..35f400f9df 100644 --- a/activesupport/lib/active_support/values/time_zone.rb +++ b/activesupport/lib/active_support/values/time_zone.rb @@ -371,7 +371,7 @@ module ActiveSupport protected def require_tzinfo - require 'tzinfo' + require 'tzinfo' unless defined?(::TZInfo) rescue LoadError $stderr.puts "You don't have tzinfo installed in your application. Please add it to your Gemfile and run bundle install" raise |