在irb中重新加载rubygems?[英] Reload rubygems in irb?

本文是小编为大家收集整理的关于在irb中重新加载rubygems?的处理方法,想解了在irb中重新加载rubygems?的问题怎么解决?在irb中重新加载rubygems?问题的解决办法?那么可以参考本文帮助大家快速定位并解决问题。

问题描述

我现在有这个脚本.

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".

问题是 gem 安装后我无法加载它.使用 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

有没有办法即时重新加载 ruby​​gems 或 irb?

推荐答案

我没试过,但我想你可能正在寻找 Gem.clear_paths

<块引用>

重置目录和路径值.下次请求 dir 或 path 时,将从头开始计算这些值.这主要被单元测试用来提供测试隔离.

本文地址:https://www.itbaoku.cn/post/786603.html