Я хотел бы реализовать метод, который преобразует любое заданное значение String в его правильное представление. Вот несколько примеров того, что я имею в виду:
- «ИСТИНА» должна стать истинной (TrueClass)
- «1000» должно стать 1000 (целое число)
- "текст" должен быть просто возвращен (String)
Я полагаю, что это было решено предоставленным мною кодом, хотя я не очень доволен тем, как он выглядит. Я думаю, что это может быть переработано во что-то более сложное, но мое творчество достигло предела.
def convert(value)
return true if value =~ /^true$/i
return false if value =~ /^false$/i
return value unless value =~ /^[0-9]*$/
begin
Integer(value)
rescue ArgumentError
nil
end
end
По сути, у меня вопрос: есть ли способ обеспечить такую же функциональность, но с меньшим количеством операторов возврата и общим количеством кода?