Вы можете использовать Integer(str)
и посмотреть, возникает ли он:
def is_num?(str)
!!Integer(str)
rescue ArgumentError, TypeError
false
end
Добавление: Следует отметить, что, хотя это возвращает true для "01"
, это не для "09"
, просто потому, что 09
не будет действительным целым литералом.