У меня есть этот скрипт прямо сейчас.
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"
.
Проблема в том, что я не могу загрузить гем после его установки.
Использование load this
или load 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 на лету?