Это абсолютно плохая идея, но только для экспериментов:
class String
alias_method :succ_orig, :succ
def succ
self.gsub(/\d+/, &:succ_orig)
end
end
p ("20Hz".."40Hz").to_a
#=> ["20Hz", "21Hz", "22Hz", "23Hz", "24Hz", "25Hz", "26Hz", "27Hz", "28Hz", "29Hz", "30Hz", "31Hz", "32Hz", "33Hz", "34Hz", "35Hz", "36Hz", "37Hz", "38Hz", "39Hz", "40Hz"]
Как видите, следует изменить не класс Range
, а метод String#succ
.
Но в реальном проекте вам лучше создать класс для ваших строк Герца и соответствующим образом определить его метод succ
.