Rubyで開発する時、rubocopを使ったらよく Missing frozen string literal comment と警告され、ファイルの一番上に「#frozen_string_literal: true」を入れることが推進されます。
簡単に説明すると、Ruby 2.3以降では、#frozen_string_literal: trueというマジックコメントを記述した場合、文字列リテラルで生成される文字列は値が変更できないようにfreezeされ、同じ内容の文字列リテラルは同一の文字列オプジェクトを返すようになります。
#frozen_string_literal: true がない場合
text1 = 'Hello world'
text2 = 'Hello world'
puts text1.object_id == text2.object_id
文字列の内容が同じでもオブジェクトが別の為、falseを返します。
#frozen_string_literal: true がある場合
#frozen_string_literal: true
text1 = 'Hello world'
text2 = 'Hello world'
puts text1.object_id == text2.object_id
同じ内容の文字列は同一の文字列オブジェクトなので、trueを返します。