Решение на Първа задача от Кристиан Цветков

Обратно към всички решения

Към профила на Кристиан Цветков

Резултати

  • 6 точки от тестове
  • 0 бонус точки
  • 6 точки общо
  • 8 успешни тест(а)
  • 0 неуспешни тест(а)

Код

EXCHANGE_RATES = {bgn: 1, usd: 1.7408, eur: 1.9557, gbp: 2.6415}
def convert_to_bgn(price, currency)
(price * EXCHANGE_RATES[currency]).round(2)
end
def compare_prices(first_price, first_currency, second_price, second_currency)
convert_to_bgn(first_price, first_currency) <=>
convert_to_bgn(second_price, second_currency)
end

Лог от изпълнението

........

Finished in 0.00692 seconds
8 examples, 0 failures

История (3 версии и 2 коментара)

Кристиан обнови решението на 11.10.2015 12:31 (преди около 9 години)

+@@currency_prices = { usd: 1.7408, eur: 1.9557, gbp: 2.6415, bgn: 1 }
+
+
+def convert_to_bgn(price, currency)
+ (price * @@currency_prices[currency]).round(2)
+end
+
+def compare_prices(first_price, first_currency,
+ second_price, second_currency)
+ convert_to_bgn(first_price, first_currency) -
+ convert_to_bgn(second_price, second_currency)
+end

Кристиан обнови решението на 11.10.2015 12:46 (преди около 9 години)

-@@currency_prices = { usd: 1.7408, eur: 1.9557, gbp: 2.6415, bgn: 1 }
+@@currency_prices = { bgn: 1, usd: 1.7408, eur: 1.9557, gbp: 2.6415 }
def convert_to_bgn(price, currency)
(price * @@currency_prices[currency]).round(2)
end
def compare_prices(first_price, first_currency,
- second_price, second_currency)
+ second_price, second_currency)
convert_to_bgn(first_price, first_currency) -
convert_to_bgn(second_price, second_currency)
end

Здравей :)

  • Харесва ми, че си отделил хеша от convert_to_bgn :) Но това с @@ е класова променлива. За тях ще си говорим малко по-натам в курса. Тук по-подходящо би било да използваш константа - CURRENCY_PRICES = {...}.
  • Можеш ли да измислиш по-добро име за хеша с валутните курсове от currency_prices? :)
  • Според ръководството ни по стил не трябва да има празни места след { и преди }.
  • Почти съм сигурен, че нещата на 8. и 9. ред ще се съберат на един ред (в до 80 символа). Ако се събират - сложи ги на един ред.
  • Вместо - може да погледнеш оператора <=>.

Напомням, че все още можеш да предадеш ново решение :)

Кристиан обнови решението на 11.10.2015 19:17 (преди около 9 години)

-@@currency_prices = { bgn: 1, usd: 1.7408, eur: 1.9557, gbp: 2.6415 }
+EXCHANGE_RATES = {bgn: 1, usd: 1.7408, eur: 1.9557, gbp: 2.6415}
def convert_to_bgn(price, currency)
- (price * @@currency_prices[currency]).round(2)
+ (price * EXCHANGE_RATES[currency]).round(2)
end
-def compare_prices(first_price, first_currency,
- second_price, second_currency)
- convert_to_bgn(first_price, first_currency) -
+def compare_prices(first_price, first_currency, second_price, second_currency)
+ convert_to_bgn(first_price, first_currency) <=>
convert_to_bgn(second_price, second_currency)
end