相关疑难解决方法(0)

在IRB重新加载rubygem

有没有办法在内存中"重新加载"或"刷新"rubygem?因为我正在玩irb,偶尔我喜欢修改我的gem文件,如果我需要相同的gem,它不会更新到内存中并且输出"false".目前我必须退出IRB,重新进入IRB然后再次要求宝石,必须有更好的方法......它是什么?

ruby ruby-on-rails irb

20
推荐指数
3
解决办法
4920
查看次数

Ruby - how to reload a file with changes in IRB or PRY?

I go into irb and require a file

irb> require_relative 'prime'
irb> true
Run Code Online (Sandbox Code Playgroud)

该文件包含以下代码:

def is_prime? num
  (2..num-1).each do |div_by|
    if num % div_by == 0
      return false
    end 
  end 
  true
end
Run Code Online (Sandbox Code Playgroud)

在irb中需要文件,我可以使用该方法,例如

irb> require_relative 'prime'
irb> is_prime? 10
irb> -> false

irb> is_prime? 11
irb> -> true
Run Code Online (Sandbox Code Playgroud)

但是,如果我修改源文件,请说add puts 'HHH',除非退出控制台并重新输入然后再require显示文件,否则它不会显示

如果我留在控制台中并再次要求该文件,我将得到错误的消息,因为该文件已被加载,并且无法获得新的更改

我试过了

irb> reload
Run Code Online (Sandbox Code Playgroud)

irb> reload!
Run Code Online (Sandbox Code Playgroud)

但他们给我

NoMethodError (undefined method `reload!' for main:Object)
Run Code Online (Sandbox Code Playgroud)

我也尝试过

irb> load 'prime.rb'
irb> => true
Run Code Online (Sandbox Code Playgroud)

但没有拿起零钱

使用PRY得出相似的结果

ruby irb pry

3
推荐指数
1
解决办法
280
查看次数

irb中的Ruby版本错误/ crack/xml

由于Float#roundRuby 1.8.6中的一个错误,我被迫升级到1.9.3,而男孩则非常糟糕.安装后,irb无法正常工作,抱怨缺乏psych.所以我尝试安装gem,但它很生气,libyaml不存在,所以我安装了.不确定如果他们如此重要,他们为什么不被包括在内.

现在当我使用require 'Location.rb'(必须指定我实际上想要查看当前文件夹...使用$LOAD_PATH)后,我收到此错误:

 LoadError: cannot load such file -- crack/xml
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/lib/ruby/gems/1.9.1/gems/ap-0.1.1/lib/ap.rb:2:in `<top (required)>'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:59:in `rescue in require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from /Users/tyre77/Dropbox/Aurora/GMap.rb:4:in `<top (required)>'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /usr/local/lib/ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from (irb):3
from /usr/local/bin/irb:12:in `<main>'
Run Code Online (Sandbox Code Playgroud)

这是什么意思?另外,当我执行时ruby -v,它将我的版本列为1.9.3p0,但这在1.9.1中是不是很有用?我想要的只是我的回归和工作!

ruby irb

2
推荐指数
1
解决办法
2427
查看次数

标签 统计

irb ×3

ruby ×3

pry ×1

ruby-on-rails ×1