2009-03-26 9 views
12

के लिए पथ शामिल करने में रूबी मणि कैसे प्राप्त करते हैं मैं रूबी मणि होने की अपेक्षा करता हूं। किसी के पास एक साधारण लाइब्रेरी या प्लगइन को एक मणि में बदलने पर ट्यूटोरियल का अच्छा लिंक है? इसके अलावा, विशेष रूप से, रूबी किस प्रक्रिया को रत्न ढूंढने की आवश्यकता के लिए उपयोग करती है? यह मणि पथ में फ़ाइलों को डालने से कुछ और लगता है (या मेरी कॉन्फ़िगरेशन खराब हो गई है?)।आप "आवश्यकता"

धन्यवाद

उत्तर

26

वास्तव में इसे मैन्युअल रूप से करने में मुश्किल नहीं है। मान लें कि आपके पास लाइब्रेरी whatever.rb है जिसे आप एक मणि के रूप में वितरित करना चाहते हैं।

  1. एक निर्देशिका lib बनाने के लिए और lib/whatever.rb में whatever.rb की एक प्रति डाल दिया।
  2. उचित मान में भरने के लिए एक फ़ाइल whatever.gemspec बनाने, और वहाँ में निम्नलिखित शब्दों में कहें,: gem install the-name-of-your-gem-0.0.1.gem का उपयोग कर के द्वारा
     
    % gem build whatever.gemspec 
    Successfully built RubyGem 
    Name: the-name-of-your-gem 
    Version: 0.0.1 
    File: the-name-of-your-gem-0.0.1.gem 
    % 
    
  3. आप स्थानीय रूप से परीक्षण कर सकते हैं: अब
    
    Gem::Specification.new do |spec| 
        spec.name = 'the-name-of-your-gem' 
        spec.version ='0.0.1'
    # this is important - it specifies which files to include in the gem. spec.files = ["lib/whatever.rb"]
    # optional, but useful to your users spec.summary = "A more longwinded description of your gem" spec.author = 'Your Name' spec.email = '[email protected]' spec.homepage = ' http://www.yourpage.com '
    # you did document with RDoc, right? spec.has_rdoc = true
    # if you have a ruby forge project spec.rubyforge_project = 'your-project-name-on-rubyforge'
    # if you have any dependencies on other gems, list them thusly spec.add_dependency('hpricot') spec.add_dependency('log4r', '>= 1.0.5') end
  4. , मणि का निर्माण करने, gem build आदेश का उपयोग करें क्या gemspec फ़ाइल में विभिन्न सेटिंग्स, GemSpec Reference जाँच के बारे में अधिक के लिए

: तो एक स्क्रिप्ट में अपनी लाइब्रेरी का उपयोग करें, बस शीर्ष पर निम्न कार्य करें।

व्यक्तिगत रूप से, मैं rubygems को निष्पादन योग्य स्क्रिप्ट को पैकेज करने के लिए बहुत कुछ उपयोग करता हूं, और इसके लिए इसे बहुत आसान लगता है।

+0

क्या कोई इस अच्छे उत्तर को चिह्नित करता है, बिना किसी टिप्पणी के विस्तृत उत्तर? –

+0

आश्चर्यजनक रूप से पूरा। शानदार जवाब। – KeatsKelleher

+0

बहुत बढ़िया, इस जवाब ने मुझे एहसास दिलाया कि एक मणि बनाने के बाद डिफ़ॉल्ट रूप से बंडलर के साथ संस्करण नियंत्रण में जोड़े गए फाइलों को 'spec.files' में जोड़ा जाता है। यही है: 's.files = \' git ls-files \ '.split ($ \) 'उन फ़ाइलों को अनदेखा करता है जिन्हें आपने गिट में नहीं जोड़ा है। – erran

2

वहाँ डॉ निक, जो newgem का उपयोग करता है से एक oldish one here है। यह शायद अब तारीख से थोड़ा सा है।

कुछ हद तक हाल ही में, हमें याद दिलाता है, जो उपरोक्त पर निर्माण करता है। Here's a post about that

जहाँ तक रास्तों जाना, एक बार आप gem install <some-useful-stuff> मार डाला है और अपने की आवश्यकता होती है या तो कोड require 'rubygems' मार डाला गया है या आप द्वारा तय किये RUBYOPT = -rubygems के रूप में (यह है कि केवल Windows? मैं नहीं यकीन है) तो उसके बाद वाले के लिए सजा require एक उपयुक्त पुस्तकालय के लिए रत्न निर्देशिका भी खोजेगा।

require_gem कमांड भी अधिक स्पष्ट (लेकिन बहिष्कृत) है, जो अब केवल सादा gem है, जो आपको संस्करण संख्या निर्दिष्ट करने की अनुमति देता है।

2

रूबी मणि बनाने के लिए आप newgem या jeweler पर देख सकते हैं।

+1

एक नया मणि बनाने के लिए बंडलर का उपयोग करने पर भी एक रेलवेस्टास्ट है। (http://railscasts.com/episodes/245-new-gem-with-bundler) – Intentss

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