module ActiveSupport::Inflector

def const_regexp(camel_cased_word) #:nodoc:

:nodoc:
For instance, Foo::Bar::Baz will generate Foo(::Bar(::Baz)?)?
Mount a regular expression that will match part by part of the constant.
def const_regexp(camel_cased_word) #:nodoc:
  parts = camel_cased_word.split("::")
  last  = parts.pop
  parts.reverse.inject(last) do |acc, part|
    part.empty? ? acc : "#{part}(::#{acc})?"
  end
end