gpt4 book ai didi

ruby - 自定义 ruby​​ gem 上的奇怪 LoadError

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

我有一个自定义 gem,当我将它作为 gem 安装并尝试在 irb 中要求它时遇到了一个非常奇怪的 LoadError。

我在项目文件夹中的 rspec 测试一切正常。只有在将它用作 irb 中的实际 gem 时才会发生这种情况。

它在 (/lib/mws/api/order_response.rb) 处抛出 LoadError 异常的文件确实存在。我已尝试重命名文件并更新需要它的文件 (/lib/mws.rb)。我试过重新创建文件,认为可能存在权限问题。什么都没用。

如果我注释掉该特定文件的 require 行,一切正常。该文件没有什么特别之处。还有 4 个与它几乎相同的文件 (*_response.rb)。

我觉得我正在服用疯狂的药片。我一定是在忽略某些东西,但我确实没有看到它。

跟踪:

chris@Samus:~$ irb
1.9.3p194 :001 > require 'mws'
LoadError: cannot load such file -- mws/api/order_response
from /Users/chris/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/chris/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:36:in `require'
from /Users/chris/.rvm/gems/ruby-1.9.3-p194/gems/mws-0.1.18/lib/mws.rb:14:in `<top (required)>'
from /Users/chris/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `require'
from /Users/chris/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:60:in `rescue in require'
from /Users/chris/.rvm/rubies/ruby-1.9.3-p194/lib/ruby/site_ruby/1.9.1/rubygems/custom_require.rb:35:in `require'
from (irb):1
from /Users/chris/.rvm/rubies/ruby-1.9.3-p194/bin/irb:16:in `<main>'

需要的文件 (/lib/mws.rb)

require 'mws/base'
require 'mws/connection'
require 'mws/utility'

require 'mws/api/seller'
require 'mws/api/product'
require 'mws/api/order'
require 'mws/api/report'

require 'mws/api/general_response'
require 'mws/api/product_response'
require 'mws/api/report_response'
require 'mws/api/seller_response'
require 'mws/api/order_response' # <--- the offending line

module MWS
# @see Base#initialize MWS::Base for instantiation details.
# @return [Base] returns MWS::Base object.
def self.new(merchant_id, access_key, secret_key)
MWS::Base.new(merchant_id, access_key, secret_key)
end
end

# The below is for documentation generation purposes.

# MWS is a wrapper for the Amazon Marketplace Web Service (MWS) API.
module MWS
# API handles all the Amazon MWS API specific stuff.
module API
end
# Utilities contains various functions needed throughout MWS. Utilities is a mixin to multiple classes.
module Utilities
end
end

我需要的文件 (/lib/mws/api/order_response.rb):

module MWS
module API

# Class for parsing Amazon's XML responses into managable objects.
class OrderResponse

# Include GeneralResponse instance methods as class methods
extend GeneralResponse

end
end
end

还有我的文件结构

enter image description here

最佳答案

对于任何感兴趣的人,我正在使用 Jeweler 来处理构建这个 gem。事实证明,Jeweler 在构建 gemspec 时会使用您的 Git 存储库。

如果您还没有将所有需要的文件添加到您的 git 存储库中,Jeweler 的 gemspec rake 任务将不会在生成新的 gemspec 文件时包括它们。

关于ruby - 自定义 ruby​​ gem 上的奇怪 LoadError,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11499140/

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