Михаела обнови решението на 10.10.2015 23:06 (преди около 10 години)
+def convert_to_bgn(price, currency)
+new_price = price
+ case currency
+  when :usd
+      new_price =  price * 1.7408
+  when :eur
+      new_price =  price * 1.9557
+  when :gbp
+       new_price = price * 2.6415
+  end
+ new_price.round(2)
+end
+
+def compare_prices(price, currency, s_price, s_currency)
+ if convert_to_bgn(price, currency) > convert_to_bgn(s_price, s_currency)
+   1
+ elsif convert_to_bgn(price, currency) == convert_to_bgn(s_price, s_currency)
+    0
+ else
+   -1
+ end
+end
Здравей :)
Имам някои коментари:
- Имаш доста проблеми с индентацията на кода. Прочети отново ръководството ни по стил. Използваме по две празни места за отместване - не 1 спейс и не табове.
 - Помисли дали има по-добро име за цената в левове от 
new_price.new_priceозначава нова цена, но всъщност цената не е нова - старата си е, просто е преобразувана в български левове. - Нямаш нужда от проверката в 
compare_prices. Прочети за оператора<=>. :) - Ако не бях прочел още 20 решения на същата задача, никога нямаше да се сетя какво означава 
sвs_price. Защо си го съкратила? Ако някой ред стане прекалено дълъг винаги можеш да запазиш резултата отconvert_to_bgn(first_price, first_currency)в променлива и да използваш това. :) - Има някаква асиметрия в 
pricevssecond_priceиcurrencyvssecond_currency. Няма ли да е по-добре ако саfirst_priceиsecond_price? - В Ruby всичко е израз и връща стойност - дори 
case. Тоест можеш да присвоиш резултата отcaseна променлива и после да го използваш. Можеш ли да използваш това знание, за да премахнеш малко дублиране на код? :) 
Напомням, че до крайния срок можеш да ни изпращаш колкото искаш решения. :)
