Николай обнови решението на 11.10.2015 01:27 (преди около 9 години)
+def convert_to_bgn(amount, currency)
+ exchange_rate_hash = { usd: 1.7408,
+ eur: 1.9557,
+ gbp: 2.6415,
+ bgn: 1.0000 }
+ (exchange_rate_hash[currency] * amount).round(2)
+end
+
+def compare_prices(first_amount, first_currency, second_amount,
+ second_currency)
+ convert_to_bgn(first_amount, first_currency) <=>
+ convert_to_bgn(second_amount, second_currency)
+end
Изглежда добре и къдраво.
- ако ще пишеш hash на много редове го прави така:
foo = {
bar: 123,
zar: '345'
}
-
exchange_rate_hash
няма нужда от суфикса_hash
- в
compare_prices
май си попаднал на някакви ограничения, ако използваш напримерdef compare_prices(amount_a, currency_a, amount_b, currency_b)
ще стане по-добре.
Желаех да използвам:
def compare_prices(amount1, currency1, ammount2, currency2)
Но regex-a skeptic явно не обича числа залепени за думи твърде много :) . Благодаря ти за корекциите.
И само едно питане. Ок ли е да правя convert_to_bgn(amount_a, currency_a) <=> convert_to_bgn(amount_b, currency_b) използвайки оператора в края на реда?