2012-03-16 9 views
10

मैं रेल 3.1 एप चला रहा हूं जो 'awesome_engine' नामक इंजन का उपयोग करता है। Awesome_engine में कुछ संपत्ति सामान हैं जो मुझे प्राप्त करने की आवश्यकता है लेकिन कंपास के लोड पथ में इंजन संपत्ति पथ शामिल नहीं है। मेरी समझ यह है कि यह वहां होना चाहिए, लेकिन ऐसा नहीं है।मुझे रेल एप्लिकेशन के अंदर से एक रत्न पूर्ण पथ की आवश्यकता है

मुझे इसे जोड़ने की ज़रूरत है इसलिए मैंने कंपास की additional_import_paths कॉन्फ़िगरेशन सेटिंग को शामिल करने के लिए अपनी कॉन्फ़िगरेशन/compass.rb को संशोधित किया। समस्या यह है, यह मैं कैसे आवश्यक मणि के लिए पथ मिलता है:

begin 
    gem_root = $LOAD_PATH.find{|i| i.include?('/awesome_engine/')}.gsub(/awesome_engine\/.*/, 'awesome_engine/app/assets/stylesheets/scss') 
    additional_import_paths = [gem_root] 
rescue 
end 

यह काम करता है लेकिन वहाँ एक आसान/बेहतर/क्लीनर एक रत्न के पूर्ण पथ प्राप्त करने के लिए रास्ता मिल गया है। किसी को?

उत्तर

25

Gem.loaded_specs मैं चाहता था है:

ruby-1.9.2-p290 :001 > Gem.loaded_specs['awesome_engine'].full_gem_path 
=> "/Users/younker/dev/engines/awesome_engine" 

ruby-1.9.2-p290 :002 > Gem.loaded_specs['rails'].full_gem_path 
=> "/Users/younker/.rvm/gems/[email protected]/gems/rails-3.1.3" 
संबंधित मुद्दे