短く書こう
def add_class_name(options, class_name) if options options.stringify_keys! if options['class'] options['class'] = "#{options['class']} #{class_name}" else options['class'] = class_name end options else {'class' => class_name} end end
なんにも考えずここまで書いて、自分ダメだと思って書きなおしました。
def add_class_name(options, class_name) options ||= {} options.stringify_keys! options['class'] ||= '' options['class'] << ' ' << class_name options end
メソッド内11行が5行になりました。
さらに短く
def add_class_name(options, class_name) (options ||= {}).stringify_keys! (options['class'] ||= '') << ' ' << class_name options end
11行 -> 5行 -> 3行となりました。僕はこっちの方が読みやすいけど、一般的にどうでしょう?これはちょっとやりすぎって言われるような気も。まあ、こういうのを採用するかどうかはそのチーム次第って感じがします。