Кристиян обнови решението на 11.10.2015 22:35 (преди около 9 години)
+def convert_to_bgn (price, currency)
+ if currency == :usd
+ (price * 1.7408).round(2)
+ elsif currency == :gbp
+ (price * 2.6415).round(2)
+ elsif currency == :eur
+ (price * 1.9557).round(2)
+ elsif currency == :bgn
+ (price).round(2)
+ end
+end
+
+def compare_prices (first_price, first_currency, second_price, second_currency)
+ first = convert_to_bgn(first_price, first_currency)
+ second = convert_to_bgn(second_price, second_currency)
+ first - second
+end
Като цяло добре. Няколко забележки:
- Индентирай с два space-a. Не слагай space между имената на методите и скобите с аргументите
- Изглежда имаш малко повторения с тази редица от
if-else
-и. За да го DRY-неш може да погледнешcase
("switch"-ът в Ruby). Ако искаш да го супер DRY-неш може да помислиш за решение с hash - Имената ти са наред, като изключим
first
иsecond
. Опитай се да измислиш по-добри. Каква е разликата междуfirst_price
иfirst
? Че едното е първата цена, а второто е само първо? Или че второто също е първата цена, само че гарантирано в лева?