From 0fc531392d1f606054a6d6e394304c72a846d4c8 Mon Sep 17 00:00:00 2001 From: Xavier Noria Date: Sat, 29 Oct 2011 01:07:54 -0700 Subject: let demodulize do less work, and add tests This is also faster on 1.9. --- activesupport/lib/active_support/inflector/methods.rb | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'activesupport/lib/active_support/inflector/methods.rb') diff --git a/activesupport/lib/active_support/inflector/methods.rb b/activesupport/lib/active_support/inflector/methods.rb index 934529d496..454637191e 100644 --- a/activesupport/lib/active_support/inflector/methods.rb +++ b/activesupport/lib/active_support/inflector/methods.rb @@ -166,7 +166,9 @@ module ActiveSupport # "ActiveRecord::CoreExtensions::String::Inflections".demodulize # => "Inflections" # "Inflections".demodulize # => "Inflections" def demodulize(class_name_in_module) - class_name_in_module.to_s.gsub(/^.*::/, '') + # If you remove the module part of an empty string, you get an empty string. + # That's why the regexp uses the * quantifier. + class_name_in_module.to_s[/[^:]*\z/] end # Creates a foreign key name from a class name. -- cgit v1.2.3