Want more GoRails?
GoRails is packed full with 727 lessons just like this one.
Sign up to get full access or log in to your account and sit back.
Your Teacher
Chris Oliver
Hi, I'm Chris. I'm the creator of GoRails, Hatchbox.io and Jumpstart. I spend my time creating tutorials and tools to help Ruby on Rails developers build apps better and faster.
About This Episode
Ruby 3.4 now raises warnings anytime you mutate a string literal. Learn how to fix our code and use frozen string literals to improve performance.
Notes
How to handle Frozen String Literals
"Chris" << " Oliver" #=> Will raise a deprecation warning or error
Instead, we want to create mutable strings:
# Using the unary operator to create a UTF8 string
+"Chris" << " Oliver"
# Or String.new to create a ASCII-8BIT string
String.new
You can run Ruby with deprecation warnings enabled:
RUBYOPT="-W:deprecated" ruby script.rb
And make sure to continue using the frozen string literal magic comment until it is enabled by default.
# frozen_string_literal: true
Or enable it with the flag:
RUBYOPT="--enable-frozen-string-literal" ruby script.rb
This is a great option to enable in CI to ensure you're not mutating frozen string literals.