2012-11-25 16 views
10

मुझे मणि स्थापित किए बिना, एक सादे रूबी स्क्रिप्ट से स्थानीय मणि को संदर्भित करने की आवश्यकता है। How to refer a local gem in ruby? की राह पर, मैं निम्नलिखित सेटअप के साथ एक Gemfile बनाने की कोशिश की:एक रूबी स्क्रिप्ट से स्थानीय मणि का संदर्भ कैसे लें?

%w(
    custom_gem 
    another_custom_gem 
).each do |dependency| 
    gem dependency, :path => File.expand_path("../../#{dependency}", __FILE__) 
end 

और स्क्रिप्ट इस तरह दिखता है:

require 'custom_gem' 
CustomGem::Do.something 

जब मैं के साथ इस पर अमल:

bundle exec ruby script.rb 

मुझे मिलता है:

script.rb:1:in `require': cannot load such file -- custom_gem (LoadError) from script.rb:1:in `<main>' 

अगर मैं require 'custom_gem' बाहर छोड़ देते हैं, मैं:

script.rb:3:in `<main>': uninitialized constant CustomGem (NameError) 

मैं भी बंडलर बिना की कोशिश की, और सिर्फ स्क्रिप्ट अपने आप में gem ... :path =>̣ ... लेखन, लेकिन परिणाम के बिना। स्थानीय स्तर पर रत्न स्थापित किए बिना रूबी स्क्रिप्ट से कस्टम रत्नों का संदर्भ देने का कोई और तरीका है?

उत्तर

10

सुनिश्चित करें कि Gemfile में के रूप में ही रूप में अपने मणि नाम (जैसे custom_gem)

# Gemfile 

source "https://rubygems.org" 

gem "custom_gem", path: "/home/username/path/to/custom_gem" 

मत भूलना वास्तव में बंडलर

bundle install 

उसके बाद का उपयोग कर इस मणि स्थापित करने के लिए, स्क्रिप्ट चाहिए bundle exec ruby script.rb

# script.rb 

require 'custom_gem' 
CustomGem::Do.something 
+0

हाँ, एक वर्तनी त्रुटि थी, किसी अन्य चीज की आवश्यकता थी लिपि में एक मणि। धन्यवाद! – tohokami

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