shadowmaru.org

Vai tomar café

Formate melhor seu console do Rails ou irb com Hirb

by Ricardo Yasuda on September 16, 2009 02:42

Posted in Rails, Ruby

Geralmente quando quero testar alguma coisa no ActiveRecord do Rails eu abro um console, usando o script/console. O problema é que a formatação dele (e consequentemente do irb, que é a engine por trás do console) é muito ruim, mostrando os resultados em forma de Hash.

Entra Hirb. Ele é, segundo o autor, Gabriel Horner, ‘um miniframework de visualização para console/irb’. As melhorias incluem formatação em tabelas de Arrays e Hashes, paginação, visualização em árvore e menu.

Para instalar,

sudo gem install cldwalker-hirb --source http://gems.github.com

e para usar, entre no irb/console, faça o require e ative

$ script/console
Loading development environment (Rails 2.3.4)
>> require 'hirb'
=> []
>> Hirb.enable
=> nil

Se quiser que o Hirb sempre esteja habilitado, crie ou edite o arquivo ~/.irbrc

if ENV['RAILS_ENV']
  require 'rubygems'
  require 'hirb'
  Hirb.enable
end

Vamos ver um exemplo com ActiveRecord:

>> Post.all :limit => 5
+----+---------------+---------------+---------------+---------------+---------+---------------+---------------+-----------+---------------+
| id | name          | body          | published_at  | permalink     | user_id | created_at    | updated_at    | published | comments_c... |
+----+---------------+---------------+---------------+---------------+---------+---------------+---------------+-----------+---------------+
| 74 | Manipuland... | Uma das d?... | 2009-06-09... | manipuland... | 1       | 2009-06-09... | 2009-08-11... | true      | 3             |
| 73 | Limpando o... | !/system/a... | 2009-04-22... | limpando-o... | 1       | 2009-04-22... | 2009-08-11... | true      | 0             |
| 72 | Why's (poi... | <img src="... | 2009-04-09... | why-s-poig... | 1       | 2009-04-09... | 2009-08-11... | true      | 0             |
| 70 | Evento: Ru... | No dia 4 d... | 2009-03-10... | evento-rub... | 1       | 2009-03-10... | 2009-08-10... | true      | 1             |
| 68 | Dica rápi... | O <a href=... | 2009-03-06... | dica-rapid... | 1       | 2009-03-06... | 2009-03-06... | true      | 1             | 
+----+---------------+---------------+---------------+---------------+---------+---------------+---------------+-----------+---------------+
5 rows in set

Repare que na linha que tem um acento ele recua um caractere, deve ser um problema ainda a ser resolvido com caracteres especiais.

Uma outra coisa legal é a visualização em árvore. Digamos que você tenha um model Page com acts_as_tree, ou seja, uma instância de Page tem um parent_id, e pode ter filhas.

>> extend Hirb::Console
=> main

>> view Page.find_by_name('About Us'), :class => :parent_child_tree, :type => :directory
About Us
|-- Contact
|-- Our History
|-- Mission
|-- Privacy Policy
`-- Terms of Use
=> true

Prático, não? Isso é só uma parte do que o Hirb pode fazer, recomendo olhar o projeto no github e a documentação, tem muita coisa interessante.

Tags: irb, rails, console, hirb

You may also like:

blog comments powered by Disqus
Google Analytics Alternative