Ruby's percent notation can do more than strings

Percent Notation

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

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

Modifier

But there is more. The curly brackets ({}) are interchangable with most unicode characters (e.g. square brackets[]).
Furthermore, you can add a " modifier Show archive.org 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)*

Examples:

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

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

Interpolation

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.

Michael Leimstädtner Over 5 years ago