module ActiveSupport::Inflector
def const_regexp(camel_cased_word) #:nodoc:
const_regexp("::") # => "::"
const_regexp("Foo::Bar::Baz") # => "Foo(::Bar(::Baz)?)?"
that will match part by part the given constant.
Mounts a regular expression, returned as a string to ease interpolation,
def const_regexp(camel_cased_word) #:nodoc: parts = camel_cased_word.split("::".freeze) return Regexp.escape(camel_cased_word) if parts.blank? last = parts.pop parts.reverse.inject(last) do |acc, part| part.empty? ? acc : "#{part}(::#{acc})?" end end