Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

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

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