Skip to content
This repository
Browse code

Make sure require_tzinfo only calls Kernel#require if TZInfo isn't al…

…ready 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)
  • Loading branch information...
commit 2147f35df251f215d845e870f21fd4010976eba3 1 parent 2b354fe
Tim Lucas authored September 07, 2011
2  activesupport/lib/active_support/values/time_zone.rb
@@ -371,7 +371,7 @@ def us_zones
371 371
       protected
372 372
 
373 373
         def require_tzinfo
374  
-          require 'tzinfo'
  374
+          require 'tzinfo' unless defined?(::TZInfo)
375 375
         rescue LoadError
376 376
           $stderr.puts "You don't have tzinfo installed in your application. Please add it to your Gemfile and run bundle install"
377 377
           raise

0 notes on commit 2147f35

Please sign in to comment.
Something went wrong with that request. Please try again.