条件演算子とchomp!に関するメモ
chomp([rs]) chomp!([rs]) 文字列の末尾から rs で指定する行区切りを取り除きます。 rsのデフォルト値は変数$/の値です。 rs に nil を指定した場合、このメソッドは何もしません。 rsが空文字列(パラグラフモード)の場合、末尾の連続する改行はすべて取り除かれます。 chomp は改行を取り除いた文字列を生成して返します。 chomp! は self を変更して返しますが、取り除く改行がなかった場合は nil を返します。
テスト
$ ruby -v ruby 1.8.5 (2006-08-25) [i386-linux] $ ruby -e 's="s"; p s.chomp!?s:s' -e:1: warning: parenthesize argument(s) for future version -e:1: syntax error s="s"; p s.chomp!?s:s ^ $ ruby -e 's="s"; p (s.chop!)?s:s' "" $ ruby -e 's="s"; p (s.chomp!)?s:s' "s" $ ruby -e 's="s\n"; p (s.chomp!)?s:s' "s" $ ruby -e 's="s\r\n"; p (s.chomp!)?s:s' "s" $ ruby -e 's="s"; p (s.chomp!(nil))' nil $ ruby -e 's="s"; p (s.chomp!(nil)); p s' nil "s"