Actions
Feature #9846
closedRegexp#to_regexp
Status:
Rejected
Assignee:
-
Target version:
-
Description
There should be Regexp#to_regexp
, just as there is Array#to_ary
and String#to_str
.
p [].to_ary # => []
p ''.to_str # => ""
p //.to_regexp # undefined method `to_regexp`...
The use case is code like this:
if o.respond_to?(:to_ary)
# do something with o.to_ary
elsif o.respond_to?(:to_str)
# do something with o.to_str
elsif o.respond_to?(to_regexp) # can't do this today
# do something with o.to_regexp
The workaround is to use Regexp.try_convert
. Regexp.try_convert
accepts either a Regexp
or an object that responds to #to_regexp
; so this code works fine (and is in some ways better):
elsif re = Regexp.try_convert(o)
# do something with o
Still, that Regexp
does not respond to #to_regexp
surprised me. Does it surprise anyone else?
Files
Actions
Like0
Like0Like0Like0Like0