Blog do TaQ

Dando uma garibada no .irbrc

Publicado em Developer

Começo de ano, hora de organizar algumas coisas. Uma delas era o meu .irbrc que andava meio diferente em algumas máquina e já estava virando bagunça. Fora que eu sempre preciso atualizar o bicho no computador do curso de Ruby na Object Training (falando nisso, as turmas desse ano começam daqui a duas semanas!) pois volta e meia instalaram uma distro nova lá.

Pois bem, segue o código do meu .irbrc abaixo. Alguns podem mencionar alguns projetos muito legais e úteis como o UtilityBelt, que faz tudo isso e muito mais, mas quem me conhece sabe que eu sou meio cabeçudo e "fução" e acabo fazendo as coisas, se possível, de um jeito enxuto que atende o que eu preciso. Inclusive, eu escolhi desabilitar os recursos de salvar o histórico e do autocomplete no Wirble para ativá-los "na unha" pois alguns ambientes podem não ter o Wirble ou nem o Rubygems instalados. Assim não fico sem esses dois recursos.

Divirtam-se!

 1 require "irb/completion"         # activate default completion
 2 require 'irb/ext/save-history'   # activate default history 
 3 require "tempfile"               # used for Vim integration  
 4 
 5 # save history using built-in options
 6 IRB.conf[:SAVE_HISTORY] = 1000
 7 IRB.conf[:HISTORY_FILE] = "#{ENV['HOME']}/.irb-save-history"
 8 puts "History configured."
 9 
10 # auto-indent
11 IRB.conf[:AUTO_INDENT]=true
12 puts "Auto-indent on."
13 
14 # try to load rubygems
15 begin
16    require "rubygems"
17    puts "Rubygems loaded."
18 rescue LoadError => e
19    puts "Seems you don't have Rubygems installed: #{e}"
20 end
21 
22 # let there be colors
23 # just use Wirble for colors, since some enviroments dont have
24 # rubygems and wirble installed
25 begin
26    require "wirble"
27    Wirble.init(:skip_prompt=>true,:skip_history=>true)
28    Wirble.colorize
29    puts "Wirble loaded. Now you have colors."
30 rescue LoadError => e
31    puts "Seems you don't have Wirble installed: #{e}"
32 end
33 
34 # configure vim
35 @irb_temp_code = nil
36 
37 def vim(file=nil)
38    file = file || @irb_temp_code || Tempfile.new("irb_tempfile").path+".rb"
39    system("vim #{file}")
40    if(File.exists?(file) && File.size(file)>0)
41       Object.class_eval(File.read(file))
42       @irb_temp_code = file
43       "File loaded from Vim."
44    else
45       "No file loaded."
46    end
47 rescue => e
48    puts "Error on vim: #{e}"
49 end
50 puts "Vim available."

Tags:


Comentários

comments powered by Disqus

Twitter

Recomendados!