diff --git a/activesupport/lib/active_support/inflector/methods.rb b/activesupport/lib/active_support/inflector/methods.rb index de49750..bef4281 100644 --- a/activesupport/lib/active_support/inflector/methods.rb +++ b/activesupport/lib/active_support/inflector/methods.rb @@ -106,7 +106,9 @@ module ActiveSupport # unknown. def constantize(camel_cased_word) names = camel_cased_word.split('::') - names.shift if names.empty? || names.first.empty? + + raise NameError, "empty constant name" if names.empty? + names.shift if names.first.empty? constant = Object names.each do |name| @@ -117,7 +119,9 @@ module ActiveSupport else def constantize(camel_cased_word) #:nodoc: names = camel_cased_word.split('::') - names.shift if names.empty? || names.first.empty? + + raise NameError, "empty constant name" if names.empty? + names.shift if names.first.empty? constant = Object names.each do |name| @@ -148,4 +152,4 @@ module ActiveSupport end end end -end \ No newline at end of file +end diff --git a/activesupport/test/inflector_test.rb b/activesupport/test/inflector_test.rb index 60714a1..01ccd67 100644 --- a/activesupport/test/inflector_test.rb +++ b/activesupport/test/inflector_test.rb @@ -200,6 +200,7 @@ class InflectorTest < Test::Unit::TestCase assert_raise(NameError) { ActiveSupport::Inflector.constantize("UnknownClass") } assert_raise(NameError) { ActiveSupport::Inflector.constantize("An invalid string") } assert_raise(NameError) { ActiveSupport::Inflector.constantize("InvalidClass\n") } + assert_raise(NameError) { ActiveSupport::Inflector.constantize("") } end def test_constantize_does_lexical_lookup