21
Ruby IRB + Utility Belt
by AkitaOnRails on Sep.21.2008 at 01:27pm
Hoje eu resolvi adicionar algumas coisinhas ao projeto utility_belt, originalmente criado por Giles Bowkett.
O objetivo dessa gem é incrementar o IRB com ferramentas úteis para trabalhar. Meus favoritos são a capacidade de ter histórico, de poder editar o histórico e também de poder usar vi ou Textmate para editar os códigos fora do IRB em vez de apenas pela linha de comando.
Quando eu digo que não é necessário nenhuma grande IDE para programar Ruby é justamente porque temos IRB. Use e abuse dele. Para instalar a gem faça o seguinte:
git clone git://github.com:akitaonrails/utility-belt.git
cd utility-belt
gem build utility_belt.gemspec
sudo gem install utility_belt-1.0.10.gem
Tanto faz usar o git ou baixar o arquivo .zip do Github. Uma vez instalado edite o arquivo .irbrc no seu diretório home (no mac seria /Users/seu_usuario/.irbrc) com o seguinte:
1 2 3 4 5 |
require 'rubygems' require 'utility_belt' UtilityBelt.equip(:all) UtilityBelt::Themes.background(:light) |
E para entender o que essa gem realmente faz, eu preparei um pequeno screencast com as principais funcionalidades. Dêem uma olhada:
Ruby IRB + Utility Belt from Fabio Akita on Vimeo.







Muito legal, eu uso para caramba o console e para classe por exemplo eu digitava em um arquivo .rb e depois ficava dando require e load…. muito mais prático dessa forma aqui.
Só faltou gist ao invés de pastie :D
Valeu a dica, abraço.
só uma coisa, se você tentar dar clone no github usando git@github.com: ele vai pedir a chave então é melhor fazer:
git clone git://github.com/akitaonrails/utility-belt.git
Akita,
A url do Github pública para clone é: git://github.com/akitaonrails/utility-belt.git
Opa, vocês tem razão, gafe minha, já atualizei no artigo :-) Valeu
ola akita,
gostei tanto do projeto que fiz o fork, e consertei um bug ao chamar o comando google, :)
T+
ops!!
isso acontece apenas no linux ubuntu :)
Olá Akita,
este problema abaixo está acontecendo, para ver se era um problema local fiz todo o procedimento utilizando o: git clone git://github.com/gilesbowkett/utility-belt.git e instalou normalmente…Alguma idéia?
135:irb mcgomes$ gem build utility_belt.gemspec
ERROR: While executing gem … (Errno::ENOENT)
No such file or directory – utility_belt-1.0.10.gem
135:irb mcgomes$
Akita, corrigi o erro do build da gem, que está citado acima no comentário do Marcello. Já mandei o pull request.
Acho que o problema esta na linha 11 do utility_belt.gemspec.
Onde diz: “utility_belt-1.0.10.gem”
eu coloquei “utility_belt-1.0.11.gem”, acho que é a versão correta.
O Cassio corrigiu isso no github e eu ja dei merge a partir do fork dele. Quem ja baixou pelo git pode fazer um git pull que vai receber a correcao. Alias, eu nao parei para ver porque o Github nao esta conseguindo gerar os gems ele mesmo. Alguem investigou isso?
Acabei não vendo que tinha corrigido o erro também fiz um fork e corrigir :P, vou apagar o meu pra não virar bagunça…
Fala Akita, valeu pelo tutorial e pelas contribuições. Esse utility_belt é de muita valia.
Esse print_methods não funciona para instancias?
Array.print_methods funciona porém
[].print_methods não funciona
@Thiago, eu originalmente estava interessado em classes, mas dá para melhorar.
Instalei normal, ai add os comando no .irbrc e quando chamo o irb da o seguinte…
O que pode ser será;:
RuntimeError: No suitable clipboard implementation for your platform found!
/usr/lib/ruby/gems/1.8/gems/utility_belt-1.0.7/lib/utility_belt/clipboard.rb:46
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `gem_original_require’
/usr/local/lib/site_ruby/1.8/rubygems/custom_require.rb:27:in `require’
/usr/lib/ruby/gems/1.8/gems/utility_belt-1.0.7/lib/utility_belt/equipper.rb:62:in `equip’
/usr/lib/ruby/gems/1.8/gems/utility_belt-1.0.7/lib/utility_belt/equipper.rb:62:in `each’
/usr/lib/ruby/gems/1.8/gems/utility_belt-1.0.7/lib/utility_belt/equipper.rb:62:in `equip’
/usr/lib/ruby/gems/1.8/gems/utility_belt-1.0.7/lib/utility_belt/equipper.rb:8:in `equip’
/home/edipo/.irbrc:4
/usr/lib/ruby/1.8/irb/init.rb:207:in `load’
/usr/lib/ruby/1.8/irb/init.rb:207:in `run_config’
/usr/lib/ruby/1.8/irb/init.rb:20:in `setup’
Acho que eu tenho a mente muito poluída.