2012-05-04 17 views
42

रूबी डब्बलर/नौसिखिया यहां देखें जो पारिस्थितिक तंत्र से परिचित नहीं है, इसलिए क्षमा करें यदि यह उन सुपर डुह प्रश्नों में से एक है।एक जेम का स्रोत कोड

क्या सभी एक मणि द्वारा स्थापित फ़ाइलों और/या स्रोत कोड को देखने का कोई तरीका है? यही कारण है कि मैं सिर्फ

$ gem install sass 

भाग गया और सास मणि अब मेरे स्थानीय सिस्टम

$ gem list --local 
... 
sass (3.1.16, 3.1.2) 
... 

का एक हिस्सा मुझे पता है कि क्या gem install आदेश अपने सिस्टम पर डाल चाहते हैं, है। क्या कोई आदेश है जिसे मैं सभी मणि द्वारा स्थापित फ़ाइलों को देखने के लिए चला सकता हूं?

कुछ googling के बाद, man gem और gem help commands, मैंने contents कमांड की खोज की।

$ मणि सामग्री

हालांकि सास, जब मैं ऊपर उल्लिखित सास मणि के साथ इस आदेश चला, मैं निम्नलिखित परिणाम

.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/engine_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/functions_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/extend_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/logger_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/css2sass_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/conversion_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/script_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util/subset_map_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util/multibyte_string_scanner_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/callbacks_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/importer_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/css_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/scss_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/scss/rx_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/util_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/script_conversion_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/less_conversion_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/cache_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/test/sass/plugin_test.rb 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/sass 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/sass-convert 
.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.16/bin/scss 

हालांकि, इस सूची के रूप में मैं जानता हूँ कि देखते हैं अपूर्ण लगता है मिल

.../.rvm/gems/ruby-1.9.2-p180/gems/sass-3.1.2/lib/ 

में फ़ाइलों को क्यों contentsसे फाइल नहीं दिखाता है 0?

क्या यह gem इंस्टॉलर के लिए रत्न फ़ोल्डर के बाहर फ़ाइलों को स्थापित करने के लिए संभव है?

क्या कोई ऐसा आदेश है जो सब कुछ एक मणि द्वारा स्थापित किया जा सकता है?

+0

यह आउटपुट मुझे 'मणि सामग्री sass' के साथ मिलता है: https://gist.github.com/2598534 - सभी वर्तमान और सही। – matt

+0

@matt क्या आप जानते हैं कि मणि सामग्री क्या पढ़ती है और/या यह मेरी मशीन पर असफल होने के कारण क्या हो सकती है? –

+0

क्षमा करें, मुझे नहीं पता कि इसका क्या कारण है। शायद आप मणि को हटाने और पुनर्स्थापित करने का प्रयास कर सकते हैं। – matt

उत्तर

34

ऐसा करने के दो वास्तव में अच्छा तरीके हैं। एक और मणि है जो आपको मणि खोलने और संपादित करने की अनुमति देता है। यह मणि फोन gem-open

gem install gem-open 

तो

gem open sass 

एक और तरीका है अपनी खुद की rdocs उत्पन्न करने के लिए है।

gem rdoc sass 

फिर आप अगर आप rvm उपयोग कर रहे हैं, तो आप rvm info टाइप कर सकते हैं और यह GEM_HOME स्थान दिखाएगा

gem server 

इसके अलावा करके अपने rdocs देख सकते हैं। यह वह जगह होगी जहां आपके सभी रत्न स्रोत कोड हैं।

cd $GEM_HOME 
cd gems/sass-3.1.2/ 

अद्यतन:

इस तरह से मैं ज्यादातर अब ऐसा करते हैं, जब बंडलर का उपयोग कर रहा है।

cd $(bundle show sass) 

यह आपके जेमफाइल में सैस का संस्करण होगा।

+2

एक आरवीएम उपयोगकर्ता के रूप में, सीडी $ GEM_HOME महान काम करता है – emery

7

आपके द्वारा उल्लिखित lib/निर्देशिका मणि के संस्करण 3.1.2 के लिए है; gem contents बिना --version सिर्फ एक संस्करण सूचीबद्ध करेगा (यह नवीनतम संस्करण चुनने के लिए प्रतीत होता है, लेकिन मैं यह सत्यापित करने में असमर्थ हूं कि यह हमेशा सत्य है)। gem contents --version 3.1.2 sass के लिए आपको क्या आउटपुट मिलता है?

+0

आह, +1 इसके लिए धन्यवाद, मुझे नहीं पता था कि वहाँ दो संस्करण थे (जैसे मैंने कहा, नौसिखिया) हालांकि, दोनों मणि सामग्री sass --version 3.1.16 और मणि सामग्री sass --version 3.1.2 उनके संबंधित lib फ़ोल्डर्स की सामग्री सूचीबद्ध करने में विफल रहता है, और यह (प्रकट होता है) कि lib फ़ोल्डर उन्हें –

+0

काम करता है मैंने बस सैस के उन दोनों संस्करणों को स्थापित किया है और मैं निश्चित रूप से lib देख सकता हूं/प्रत्येक के लिए सूचीबद्ध फ़ोल्डर। उम्मीद है कि मणि ने कहा कि मणि को पुनर्स्थापित करना, मदद करेगा। – echristopherson

2

आप .gem फ़ाइल को .tar फ़ाइल का नाम बदलने और पॉज़िक्स संग्रह के रूप में निकालने का भी उपयोग कर सकते हैं। स्रोत कोड lib फ़ोल्डर में इसके अंदर है। अधिक जानकारी के लिए https://blog.srcclr.com/extracting-ruby-source-code-from-gem-packages/ देखें।

8

मैं आमतौर पर gem contents को सांत्वना

EDITOR=<your editor> bundle open <name of gem> 
1

इसके अलावा इस आदेश चलाकर एक रत्न खोलते हैं, तो एक और आदेश जो आपके लिए उपयोगी हो सकता है gem environment है। यदि आपके मणि इंस्टॉलेशन के लिए आपके पास कई पथ हैं, तो वे सभी "जीईएम पथ" लेबल के अंतर्गत सूचीबद्ध होंगे।

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