Перезагрузить rubygems в irb?

У меня сейчас есть этот сценарий.

def r(this)
  require this
  puts "#{this} is now loaded."
rescue LoadError
  puts "The gem '#{this}' is missing."
  puts "Should I install it? [y/n]"
  data = gets
  if data =~ /yes|y/i
    puts "Installing #{this}, hold on."
    if `gem install #{this}` =~ /Successfully/i
      load this
    end
  else
    puts "Okey, goodbye."
  end
end

Это позволяет запрашивать библиотеки на лету. Примерно так: r "haml" .

Проблема в том, что я не могу загрузить гем после его установки. Использование загрузить этот или загрузить File.expand_path ("~ / .irbrc") не работает.

Вот пример.

>> r "absolutize"
The gem 'absolutize' is missing.
Should I install it? [y/n]
y
Installing absolutize, hold on
LoadError: no such file to load -- absolutize
>> require "absolutize"
LoadError: no such file to load -- absolutize
>> exit
$ irb
>> require "absolutize"
=> true

Есть ли способ перезагрузить rubygems или irb на лету?

9
задан Linus Oleander 27 April 2011 в 15:57
поделиться