lib/inquisitio/active_support.rb in inquisitio-0.1.2 vs lib/inquisitio/active_support.rb in inquisitio-0.1.3

- old
+ new

@@ -1,34 +1,32 @@ # This is taken from ActiveSupport -module ActiveSupport - module String - def constantize - names = self.gsub("_", "::").split('::') - names.shift if names.empty? || names.first.empty? +module ActiveSupportString + def constantize + names = self.split('::') + names.shift if names.empty? || names.first.empty? - names.inject(Object) do |constant, name| - if constant == Object - constant.const_get(name) - else - candidate = constant.const_get(name) - next candidate if constant.const_defined?(name, false) - next candidate unless Object.const_defined?(name) + names.inject(Object) do |constant, name| + if constant == Object + constant.const_get(name) + else + candidate = constant.const_get(name) + next candidate if constant.const_defined?(name, false) + next candidate unless Object.const_defined?(name) - # Go down the ancestors to check it it's owned - # directly before we reach Object or the end of ancestors. - constant = constant.ancestors.inject do |const, ancestor| - break const if ancestor == Object - break ancestor if ancestor.const_defined?(name, false) - const - end - - # owner is in Object, so raise - constant.const_get(name, false) + # Go down the ancestors to check it it's owned + # directly before we reach Object or the end of ancestors. + constant = constant.ancestors.inject do |const, ancestor| + break const if ancestor == Object + break ancestor if ancestor.const_defined?(name, false) + const end + + # owner is in Object, so raise + constant.const_get(name, false) end end end end class String - include ActiveSupport::String + include ActiveSupportString end