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:

exibindo-valores-no-terminal

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:

embelezando-outputs-com-a-gem-awesome-print

Temos uma saída muito mais clara, identada e colorida!

Você pode incluir 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:

customizando-saidas-com-awesome-print

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 ;).

gem-awesome-print-integrada-ao-irb

Essa foi a dica de hoje, o que acharam?

Até mais.

Written on January 19, 2013

Share: