Я написал логику / метод, который возвращает два разных объекта (Integer и String), так что для примера возвращаемое значение будет 5000.00 Dollars
.
Итак, я написал метод для моих ожиданий.См. Логику ниже:
s = x.currency # This assigns the string `dollarpounds` to s
a = s.slice(6..11) # This slice off 6 to 11 and returns just pounds to variable a
price_value = x.price # This is integer (price)
volume_volume = x.volume # This is integer (volume)
value = price_value * volume_volume # This multiplies price and volume and returns the value
value + "#{a}" # Now this throws TypeError-String can't be coerced into BigDecimal
Итак, чтобы избавиться от этой проблемы, я изменил методику, но считаю, что ее очень оскорбительный фрагмент считается мастером в Ruby. Как мне переписать эту переработанную логику ниже, чтобы быть достаточно умным, как код Ruby?
Итак, вот что я сделал:
Переформулированная логика .Он возвращает 5000.00 Dollars
, как и ожидалось
s = x.currency # This assigns the string `dollarpounds` to s
a = s.slice(6..11) # This slice off 6 to 11 and returns just pounds to variable a
price_value = x.price # This is integer (price)
volume_volume = x.volume # This is integer (volume)
value = price_value * volume_volume # This multiplies price and volume and returns the value
[[value].join(' '), "#{a}"].split(',').join(' ') # This returns 5000.00 Dollars
Сколько бы ни работал мой код re-factored
, я все еще чувствую, что это оскорбительно для сообщества ruby и может быть лучше этого.Будем благодарны за любую помощь, как сделать это лучше.