Веселин обнови решението на 11.10.2015 13:49 (преди около 9 години)
+def convert_to_bgn price, currency
+ case currency
+ when :usd
+ convert_to_bgn_from_usd price
+ when :eur
+ convert_to_bgn_from_eur price
+ when :gbp
+ convert_to_bgn_from_gbp price
+ else
+ price
+ end
+end
+
+
+def convert_to_bgn_from_usd price
+ (price * 1.7408).round(2)
+end
+
+def convert_to_bgn_from_eur price
+ (price * 1.9557).round(2)
+end
+
+def convert_to_bgn_from_gbp price
+ (price * 2.6415).round(2)
+end
+
+def compare_prices(first_price, first_currency, second_price, second_currency)
+ first_converted_price = convert_to_bgn(first_price, first_currency)
+ second_converted_price = convert_to_bgn(second_price, second_currency)
+
+ if first_converted_price > second_converted_price
+ 1
+ elsif first_converted_price == second_converted_price
+ 0
+ else
+ -1
+ end
+end
Дух престарал си се:
- не закръгляш в
:bgn
- слагай скоби около параметрите на методите, т.е.
def convert_to_bgn(price, currency)
- можеш да махнеш излишните методи
convert_to_bgn_from_usd
и т.н. - използвай променливи и не повтарай код в израза за смяна на курса
- в
compare_prices
си си написал<=>
, та.. погледни за него