Изменения в новых версиях / Ruby 2.3

# *** before: ***
s_old = "hello".freeze     # freezing needed an explicit call on every literal
begin
  s_old << " world"
rescue => e
  puts "cannot modify frozen String: #{e.class}"
end

# *** in version 2.3: ***
# frozen_string_literal: true   <- as the very first comment of a real file,
#                                   every string literal below becomes frozen
s = "hello"
puts s.frozen?

mutable = (-s).dup   # unary -@ returns a frozen copy, +@ an unfrozen one
mutable << " world"
puts mutable