mirror of
https://github.com/rails/rails.git
synced 2022-11-09 12:12:34 -05:00
49 lines
733 B
Ruby
49 lines
733 B
Ruby
class Object
|
|
def to_param
|
|
to_s
|
|
end
|
|
end
|
|
|
|
class TrueClass
|
|
def to_param
|
|
self
|
|
end
|
|
end
|
|
|
|
class FalseClass
|
|
def to_param
|
|
self
|
|
end
|
|
end
|
|
|
|
class NilClass
|
|
def to_param
|
|
self
|
|
end
|
|
end
|
|
|
|
class Regexp #:nodoc:
|
|
def number_of_captures
|
|
Regexp.new("|#{source}").match('').captures.length
|
|
end
|
|
|
|
def multiline?
|
|
options & MULTILINE == MULTILINE
|
|
end
|
|
|
|
class << self
|
|
def optionalize(pattern)
|
|
case unoptionalize(pattern)
|
|
when /\A(.|\(.*\))\Z/ then "#{pattern}?"
|
|
else "(?:#{pattern})?"
|
|
end
|
|
end
|
|
|
|
def unoptionalize(pattern)
|
|
[/\A\(\?:(.*)\)\?\Z/, /\A(.|\(.*\))\?\Z/].each do |regexp|
|
|
return $1 if regexp =~ pattern
|
|
end
|
|
return pattern
|
|
end
|
|
end
|
|
end
|