Bye Bye Moore

PoCソルジャーな零細事業主が作業メモを残すブログ

Active_supportのString#squishで邪魔な改行文字や空白を綺麗にする

Active_supportのString#squishで邪魔な改行文字や空白を綺麗にできます。

つまり、これが

puts "\n HOGE \r\n   fuga"

# HOGE 
#   fuga

こうなります。

puts "\n HOGE \r\n   fuga".squish
#HOGE fuga

実装上の話

もちろん、正規表現なんかでもいけます
実際、実装上は

  def squish
    dup.squish!
  end

  def squish!
    gsub!(/\A[[:space:]]+/, '')
    gsub!(/[[:space:]]+\z/, '')
    gsub!(/[[:space:]]+/, ' ')
    self
  end

正規表現バリバリですが、単体のメソッドで完結してくれた方が楽でいいですよね。