【问题标题】:IRB.start not startingIRB.start 没有开始
【发布时间】:2015-10-11 21:02:18
【问题描述】:

我有一些运行 IRB.start 的代码(从 gem 内部)

但是,我在 magic-file.rb “没有这样的文件或目录@rb_sysopen - 控制台”中收到此错误

/Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb/magic-file.rb:7:in `initialize': No such file or directory @ rb_sysopen - console (Errno::ENOENT)
    from /Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb/magic-file.rb:7:in `open'
    from /Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb/magic-file.rb:7:in `open'
    from /Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb/input-method.rb:100:in `initialize'
    from /Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb/context.rb:84:in `new'
    from /Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb/context.rb:84:in `initialize'
    from /Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb.rb:426:in `new'
    from /Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb.rb:426:in `initialize'
    from /Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb.rb:381:in `new'
    from /Users/you/.rvm/rubies/ruby-2.2.1/lib/ruby/2.2.0/irb.rb:381:in `start'
    from /Users/you/projects/mygem/lib/mygem/commands.rb:20:in `console'

【问题讨论】:

  • 我刚遇到同样的问题。

标签: ruby gem irb


【解决方案1】:

我想通了!通过查看代码:

我能够确定 IRB 检查 ARGV,以便您可以将命令行上的 IRB args 传递给您正在调用 IRB.start 的任何脚本。

但由于我试图创建一个 rake 任务来启动控制台,并为方便起见预加载了我的库,所以我的命令行是:

rake console

并且 IRB 试图加载文件“控制台”,因为它假定第一个不带连字符的 arg 是要运行的脚本。有点烦人。 (IRB.start 应该将 args 作为方法 arg 以避免这种紧密耦合。)

我设法通过在 IRB.start 之前添加它来修复它:

ARGV.clear

更新:既然被请求了,这里正是使用 ARGV 的地方:

【讨论】:

猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2012-05-01
  • 2018-12-02
  • 2021-08-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多