はじめに
Rails 6 に追加された新機能を試す第97段。 今回は、 truncate
編です。
Rails 6 では、 truncate
は、常に freeze されていない文字列を返すようになりました。
Ruby 2.6.5, Rails 6.0.0 で確認しました。
$ rails --version
Rails 6.0.0
今回は、スクリプトを書いて確認します。
Rails プロジェクトを作る
$ rails new rails_sandbox
cd rails_sandbox
簡単なスクリプトを書く
freeze した文字列に対して、 truncate メソッドを呼び出すスクリプトを書いて試してみます。
scripts/truncate.rb
str = -'truncate test'
s1 = str.truncate(str.length)
s2 = str.truncate(str.length - 1)
p s1.frozen?
p s2.frozen?
動作確認する
実行してみます
$ bin/rails runner scripts/truncate.rb
false
false
Rails 6 では、どちらの場合も false になります。
Rails 5 では
Rails 5 では、以下のようになります。
$ bin/rails runner scripts/truncate.rb
false
true
試したソース
試したソースは以下にあります。
https://github.com/suketa/rails_sandbox/tree/try097_truncate