ネットでよく見かけるソース

def hoge
  foo = '12345'
  a = <<~EOS
    foo: #{foo}
  EOS
end

print hoge

結果

foo: 12345
#<-改行されている

下記はエラー

def hoge
  foo = '12345'
  a = <<~EOS
    foo: #{foo}\
  EOS
end

エラー内容

can't find string "EOS" anywhere before EOF

質問

特に問題がないと言えば問題がないですが、ヒアドキュメントによって作られた文字列を含む変数などをputsで表示させるとヒアドキュメントの最後の改行putsの改行のダブルの改行が出力されるわけです。一般的にヒアドキュメントの場合はputsとは一緒に使わないのでしょうか? 最後の改行を除去する方法はありますか?