aboutsummaryrefslogtreecommitdiffstats
path: root/activesupport
diff options
context:
space:
mode:
authorTim Lucas <t.lucas@toolmantim.com>2011-09-07 14:21:18 +0300
committerTim Lucas <t.lucas@toolmantim.com>2011-09-07 14:21:18 +0300
commit2147f35df251f215d845e870f21fd4010976eba3 (patch)
tree07a54399fd167a64acb9a511114990348d6430f0 /activesupport
parent2b354fed34ba78797c9fbe1d0f29c0337f9f6411 (diff)
downloadrails-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')
-rw-r--r--activesupport/lib/active_support/values/time_zone.rb2
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