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

try!を使ってすっきり

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

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

みんなのコメント

0277045a076689a033f3f26d7d4517a2
sue445
2015/12/14 01:05:13 投稿

Afterをさらにすっきりできそうだったのでリファクタリングしてみました

https://jobs.forkwell.com/refactorings/50