Рали обнови решението на 11.10.2015 23:55 (преди около 10 години)
+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]. За щастие тук има конкретен термин - обменен курс
