diff options
author | Jeremy Kemper <jeremy@bitsweat.net> | 2010-06-05 20:33:53 -0700 |
---|---|---|
committer | Jeremy Kemper <jeremy@bitsweat.net> | 2010-06-05 22:05:58 -0700 |
commit | fd1a5041362f5e65b813b7938d477143bd82de40 (patch) | |
tree | 5365eede7fe25b23d2a3f37beb21c11ddad281b0 /activesupport/lib/active_support/dependencies.rb | |
parent | 35ae42be4f9e23ae954e4705276b460998cb401b (diff) | |
download | rails-fd1a5041362f5e65b813b7938d477143bd82de40.tar.gz rails-fd1a5041362f5e65b813b7938d477143bd82de40.tar.bz2 rails-fd1a5041362f5e65b813b7938d477143bd82de40.zip |
ActiveSupport::Dependencies.constantize shortcut for caching named constant lookups
Diffstat (limited to 'activesupport/lib/active_support/dependencies.rb')
-rw-r--r-- | activesupport/lib/active_support/dependencies.rb | 12 |
1 files changed, 9 insertions, 3 deletions
diff --git a/activesupport/lib/active_support/dependencies.rb b/activesupport/lib/active_support/dependencies.rb index e0d2b70306..5091abc3a4 100644 --- a/activesupport/lib/active_support/dependencies.rb +++ b/activesupport/lib/active_support/dependencies.rb @@ -484,8 +484,10 @@ module ActiveSupport #:nodoc: end class Reference - def initialize(constant, name) - @constant, @name = constant, name + attr_reader :name + + def initialize(name, constant = nil) + @name, @constant = name, constant end def get @@ -498,7 +500,11 @@ module ActiveSupport #:nodoc: end def ref(name) - references[name] ||= Reference.new(Inflector.constantize(name), name) + references[name] ||= Reference.new(name) + end + + def constantize(name) + ref(name).get end # Determine if the given constant has been automatically loaded. |