gpt4 book ai didi

ruby - 在 RubyGem 中要求文件的正确方法?

转载 作者:数据小太阳 更新时间:2023-10-29 08:24:46 24 4
gpt4 key购买 nike

我使用 Bundler 为我生成了一个 Gem 骨架。在 lib/foo.rb 中,我有以下内容:

require 'foo/client'
require 'foo/other'

这两行应该分别需要 lib/foo/client.rblib/foo/other.rb。它构建没有问题,但是当我用 irb 测试它时,我得到了一个找不到文件的错误。

ruby-1.9.2-head :003 > require 'foo'
LoadError: no such file to load -- foo/client
from /home/ethan/.rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/ethan/.rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/ethan/.rvm/gems/ruby-1.9.2-head/gems/foo-0.1.0/lib/foo.rb:3:in `<top (required)>'
from /home/ethan/.rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /home/ethan/.rvm/rubies/ruby-1.9.2-head/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from (irb):3
from /home/ethan/.rvm/rubies/ruby-1.9.2-head/bin/irb:16:in `<main>'
ruby-1.9.2-head :004 >

在同一个 Gem 中请求文件的正确方法是什么?必须有一些简单的事情我正在监督...

最佳答案

如果您的 gem 名为“foo”,那么您需要做的就是使用 bundle exec:

bundle exec your-script.rb

没有 bundle exec,加载路径设置不正确。

使用 irb,您可以使用 bundle 命令 bundle console

chris@chris:~/oss/pp-adaptive$ irb
irb(main):001:0> AdaptivePayments
NameError: uninitialized constant Object::AdaptivePayments
from (irb):1
from /home/chris/.rbenv/versions/1.9.2-p290/bin/irb:12:in `<main>'
irb(main):002:0>

chris@chris:~/oss/pp-adaptive$ bundle console
irb(main):001:0> AdaptivePayments
=> AdaptivePayments
irb(main):002:0>

请注意,一旦 gem 安装到您的系统上,您就可以在没有 bundler 的情况下使用它。

关于ruby - 在 RubyGem 中要求文件的正确方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7775233/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com