Read more

Ruby's percent notation can do more than strings

Michael Leimst├Ądtner
October 23, 2018Software engineer at makandra GmbH

Percent Notation

We already know that that we can create strings using the percent notation:

Illustration book lover

Growing Rails Applications in Practice

Check out our e-book. Learn to structure large Ruby on Rails codebases with the tools you already know and love.

  • Introduce design conventions for controllers and user-facing models
  • Create a system for growth
  • Build applications to last
Read more Show snapshot

%(<foo="bar's ton">) is perfectly fine Ruby.


But there is more. The curly brackets ({}) are interchangable with most unicode characters (e.g. square brackets[]).
Furthermore, you can add a " modifier Show snapshot " to the percent notation to control the return type of the expression:

%s	Symbol
%i	Array of Symbols
%q	String
%w	Array of Strings
%r	Regular Expression
%x	Backtick (capture subshell result)*


%i[foo bar] 
=> [:foo, :bar]

%q[foo bar] 
=> "foo bar"


To interpolate a dynamic value, swap the modifier with the corresponding uppercase letter:

%I[a list of #{'inter'}polated symbols]
=> [:a, :list, :of, :interpolated, :symbols]

*Please keep in mind that we'd prefer Open3 for shell commands.

Posted by Michael Leimst├Ądtner to makandra dev (2018-10-23 15:03)