diff options
author | Ryan Oblak <rroblak@gmail.com> | 2011-09-22 12:17:42 -0700 |
---|---|---|
committer | José Valim <jose.valim@gmail.com> | 2011-09-23 15:36:33 +0200 |
commit | 310565f537b5eeb134e9a4bb0801358432f03e04 (patch) | |
tree | 03ffd726f0788a64c2163d1130727b6a2d8a2aa3 /activesupport/lib/active_support/core_ext/string/inflections.rb | |
parent | d62fc8e0211ca2657899f061888d1756a3c257dd (diff) | |
download | rails-310565f537b5eeb134e9a4bb0801358432f03e04.tar.gz rails-310565f537b5eeb134e9a4bb0801358432f03e04.tar.bz2 rails-310565f537b5eeb134e9a4bb0801358432f03e04.zip |
Added ActiveSupport::Inflector.safe_constantize and String#safe_constantize; refactored common constantize tests into ConstantizeTestCases
Diffstat (limited to 'activesupport/lib/active_support/core_ext/string/inflections.rb')
-rw-r--r-- | activesupport/lib/active_support/core_ext/string/inflections.rb | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/activesupport/lib/active_support/core_ext/string/inflections.rb b/activesupport/lib/active_support/core_ext/string/inflections.rb index 002688d6c0..b4218cb42c 100644 --- a/activesupport/lib/active_support/core_ext/string/inflections.rb +++ b/activesupport/lib/active_support/core_ext/string/inflections.rb @@ -33,14 +33,27 @@ class String # +constantize+ tries to find a declared constant with the name specified # in the string. It raises a NameError when the name is not in CamelCase - # or is not initialized. + # or is not initialized. See ActiveSupport::Inflector.constantize # # Examples - # "Module".constantize # => Module - # "Class".constantize # => Class + # "Module".constantize # => Module + # "Class".constantize # => Class + # "blargle".safe_constantize # => NameError: wrong constant name blargle def constantize ActiveSupport::Inflector.constantize(self) end + + # +safe_constantize+ tries to find a declared constant with the name specified + # in the string. It returns nil when the name is not in CamelCase + # or is not initialized. See ActiveSupport::Inflector.safe_constantize + # + # Examples + # "Module".safe_constantize # => Module + # "Class".safe_constantize # => Class + # "blargle".safe_constantize # => nil + def safe_constantize + ActiveSupport::Inflector.safe_constantize(self) + end # By default, +camelize+ converts strings to UpperCamelCase. If the argument to camelize # is set to <tt>:lower</tt> then camelize produces lowerCamelCase. |