Embelezando Outputs com a Gem Awesome Print
Hoje venho apresentar a vocês - que ainda não conhecem, uma gem muito útil para inspeção de objetos e outras estruturas de dados como array e hash no Ruby.
Vamos supor que tenhamos uma variável contendo o seguinte conteúdo:
my_array = [1, 'dois', DateTime.now(), [3, 'quatro', 0.2]]
Se precisarmos exibir o valor dela no terminal por algum motivo e usarmos o tradicional puts
, ou seu primo p
para isso, obteremos um output não muito legível, veja como ficaria:

Observe que o array interno está sendo exibindo no mesmo nível que os outros valores, além do que a colorização não ajuda muito.
Imagina quando estamos inspecionando valores no Rails por exemplo, temos tantas saídas sendo exibidas no terminal quando fazemos uma requisição, que fica até difícil encontrar o valor que precisamos no meio de tanta informação.
A Solução
Ainda bem que existe a gem Awesome Print, ela nos ajuda muito nesse processo de inspeção.
Instale em sua máquina rodando gem install awesome_print
, faça a importação no IRB require 'ap'
e seja feliz usando ap
invés de puts
/p
, veja:

Temos uma saída muito mais clara, identada e colorida!
gem 'awesome_print', :require => 'ap'
no Gemfile
em seu projeto Rails para já fazer o require automaticamente.Customização
Essa gem também permite a customização do output através do hash options
, basta informar as configurações desejadas como no exemplo abaixo:

Aqui, defino 2 espaços para identação e mudo a cor de strings para vermelho. Outras opções de customização podem ser vistas aqui.
Integração com IRB
Para não ter que ficar importando a gem toda hora quando acessar o IRB ao abrir o terminal, você pode definir ela como formatador padrão, basta criar um arquivo chamado .irbrc
no diretório home (~/
) e adicionar o conteúdo:
require "awesome_print"
AwesomePrint.irb!
Recarregue o IRB e pronto! Toda vez que você usar o p
terá uma saída incrivelmente bonita ;).

Essa foi a dica de hoje, o que acharam?
Até mais.