yamadagenki0607
yamadagenki0607
2015/12/10 17:00:22 投稿
2

try!を使ってすっきり

<p>無駄な条件分岐を無くしたかったのですっきりさせてみた</p>

Before

def birthday_label
  return '' if year.blank? && month.blank? && day.blank?

  return month.label if year.blank? && day.blank?
  return day.label   if year.blank? && month.blank?
  return year.label  if month.blank? && day.blank?

  return "#{month.label}#{day.label}"  if year.blank?
  return "#{year.label}#{day.label}"   if month.blank?
  return "#{year.label}#{month.label}" if day.blank?

  "#{year.label}#{month.label}#{day.label}"
end

After

def birthday_label
  "#{year.try!(:label)}#{month.try!(:label)}#{day.try!(:label)}"
end

みんなのコメント

sue445
sue445
2015/12/14 01:05:13 投稿
<p>Afterをさらにすっきりできそうだったのでリファクタリングしてみました</p> <p><a href="https://jobs.forkwell.com/refactorings/50" target="_blank" rel="nofollow">https://jobs.forkwell.com/refactorings/50</a> <i class="fa fa-external-link"></i></p>