Рали обнови решението на 11.10.2015 23:55 (преди около 9 години)
+def convert_to_bgn(sum, currency_id)
+ currencies = { usd: 1.7408, eur: 1.9557, gbp: 2.6415, bgn: 1.0000 }
+ (sum * currencies[currency_id]).round(2)
+end
+
+def compare_prices(sum, currency_id, sum_to_compare, currency_to_compare_id)
+ convert_to_bgn(sum, currency_id) <=>
+ convert_to_bgn(sum_to_compare, currency_to_compare_id)
+end
Идейно е супер, няколко насоки за подобрение:
- Не слагай space-ове в началото и края на hash-овете
-
currency_id
ми звучи като, че ще бъде число. Няма нужда от това_id
- С
to_compare
суфикса идва усещане, че двете суми не са равностойни (едната е главна, другата второстепенна). Избери имена, които импликират равнопоставеност (примерно първа сума и втора сума) -
currencies
не дава усещане за mapping. Звучи като да съдържа[:usd, :eur, :gbp, :bgn]
. За щастие тук има конкретен термин - обменен курс