Percent Strings em Ruby

Dicas - 26/Jul/2020 - por André Kanamura

Em programação, Literals são notações que permitem criar valores que podem ser usados no código. Em Ruby, as literals nos permitem criar objetos dos seguintes tipos: Booleans, nil, Números, Strings, Symbols, Arrays, Hashes, Ranges, Expressões Regulares e Procs. Já a Percent String é uma forma de notação que permite criar outros tipos de objeto. Em Ruby podemos usar:

%i Array de Symbols

%i(new create edit update)
# => [:new, :create, :edit, :update]

%w Array de Strings

%w(coelho gato porco)
# => ["coelho", "gato", "porco"] 

Nas notações de Arrays, para incluir um espaço em branco em algum dos elementos, será necessário adicionar um caractere \:

%w(coelho gato\ selvagem porco)
# => ["coelho", "gato selvagem", "porco"]

%q String

%q(essa é uma frase)
# => "essa é uma frase"

%r Expressões regulares

%r((\d)(\1+)|(\d))
# => /(\d)(\1+)|(\d)/ 

%s Symbol

%s(method_name)
# => :method_name

%x Backtick (captura a resposta do subshell)

%x(id -u)
# => "1000\n"

Em todos os casos, no lugar dos parênteses também podemos usar colchetes [ ], o resultado será o mesmo.

Talvez um exemplo de uso bastante óbvio de Percent Strings seja em aplicações Rails em que temos Arrays de actions chamados em controllers ou no arquivo de rotas:

resources :users, only: [:new, :create, :show]

# pode ser substituído por
resources :users, only: %i[new create show]

Referência

Foto de perfil do autor
André Kanamura

Dev na Campus Code