でこんなリファクタリングの仕方ができると知ったので、
Rubyで書き換えてみた。
##JS
before
if (card == "valid" && tries <= 3 && balance <= 3000) {
withdrawMoney();
}
after
function canGetMoney() {
if (card != "valid") return false;
if (tries > 3) return false;
if (balance > 3000) return false;
return true;
}
if (canGetMoney()) {
withdrawMoney();
}
##Ruby
before
if card == "valid" && tries <= 3 && balance <= 3000
withdraw_money
end
after
def can_get_money
return false if card != "valid"
return false if tries > 3
return false if balance > 3000
true
end
withdraw_money if can_get_money