2012-07-16 12 views
5

मेरे पास एक कस्टम मणि है और जब मैं इसे एक मणि के रूप में स्थापित करता हूं और इसे irb में इसकी आवश्यकता होती है तो वास्तव में अजीब लोडरर का सामना कर रहा हूं।कस्टम रूबी मणि पर अजीब लोडरर

सबकुछ परियोजना फ़ोल्डर के अंदर मेरे आरएसपीईसी परीक्षणों के साथ ठीक काम करता है। यह केवल तब होता है जब इसे irb में वास्तविक मणि के रूप में उपयोग किया जाता है।

फ़ाइल जो लोडरर अपवाद फेंकता है (/lib/mws/api/order_response.rb) वास्तव में मौजूद है। मैंने फ़ाइल का नाम बदलने और उस फ़ाइल को अपडेट करने का प्रयास किया है जिसके लिए इसकी आवश्यकता है (/lib/mws.rb)। मैंने फ़ाइल सोचने की कोशिश की है कि शायद एक अनुमति समस्या थी। कुछ भी काम नहीं करता है।

यदि मैं उस विशिष्ट फ़ाइल के लिए आवश्यक रेखा पर टिप्पणी करता हूं, तो सब कुछ काम करता है। फ़ाइल के बारे में कुछ खास नहीं है। इसके अलावा 4 अन्य फाइलें समान हैं (*_response.rb)।

मुझे लगता है कि मैं पागल गोलियां ले रहा हूं। मुझे कुछ दिखाना चाहिए लेकिन मुझे यकीन है कि यह नहीं देख रहा है।

ट्रेस: ​​ की आवश्यकता है (/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) के साथ

[email protected]:~$ 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>' 

फ़ाइल:

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

उत्तर

2

/Users/chris/.rvm/gems/ruby-1.9.3-p194/gems/mws-0.1.18/lib/mws/api में जांच कर सकता है चाहिए अगर फ़ाइल वहाँ निहित है (और अस्पष्ट अनुमति नहीं है)।

यदि ऐसा नहीं है, तो आप शायद इसे अपने gemspec में जोड़ना भूल गए हैं।

यदि यह है, तो कृपया इसे पूर्ण पथ (डीबगिंग उद्देश्य के लिए) के साथ आवश्यक/लोड करने का प्रयास करें।

+0

यह बहुत अधिक जवाब था, लेकिन मैंने नीचे क्यों बताया: http://stackoverflow.com/questions/11499140/weird-loaderror-on-custom-ruby-gem/11820819#11820819 –

4

किसी भी दिलचस्पी के लिए, मैं इस मणि के निर्माण को संभालने के लिए ज्वेलर का उपयोग कर रहा था। जैसा कि यह पता चला है, जमेसर एक gemspec निर्माण करते समय अपने गिट भंडार का उपयोग करता है।

यदि आपने अपने गिट रिपोजिटरी में सभी आवश्यक फाइलें नहीं जोड़े हैं, तो ज्वेलर के जेम्सस्पेक रेक कार्य में उन्हें एक नई रत्नपेक फ़ाइल उत्पन्न करते समय शामिल नहीं किया जाएगा।

+2

वाह। इस जवाब ने मुझे आज बहुत मदद की। मैंने सोचा कि मैं पागल हो रहा था या कुछ। :) – oesgalha

+0

खुशी मैं मदद कर सकता था। यह मुझे एक लूप के लिए भी फेंक दिया। –

संबंधित मुद्दे