Ruby: จะเขียนอัญมณีอย่างไร? [ปิด]


160

ฉันต้องการเขียนแพ็คเกจสำหรับ Ruby และทำให้มันเป็นอัญมณี
เครื่องมือขั้นตอนและข้อผิดพลาดคืออะไร
มีแบบฝึกหัดที่ดี screencasts ฯลฯ ซึ่งช่วยให้คุณเรียนรู้วิธีทำ

คำตอบ:


216

คำแนะนำของ Rubygems.orgเป็นหนึ่งในแหล่งข้อมูลที่ดีที่สุดสำหรับการเขียนอัญมณีของคุณเอง

หากคุณกำลังใช้Bundlerใน app ของคุณคุณอาจต้องการที่จะดูที่คู่มือไรอัน Bigg เพื่อการพัฒนา RubyGem ใช้ BundlerและRailscast เกี่ยวกับการสร้างอัญมณีกับ Bundler

หากคุณสนใจเครื่องมือที่จะช่วยคุณเขียนพลอย:

  • Jeweler - เครื่องมือที่มีความคิดเห็นสำหรับการสร้างและจัดการโครงการ Rubygem นอกจากนี้ยังมี Gemcutter และ Jeweler Railscast
  • Hoe - จากพวกที่ seattlrb
  • gem- นี่เป็นการเพิ่มภารกิจคราดที่เป็นประโยชน์มากมาย

บทแนะนำ / คู่มือบางส่วน:


3
gem buildจัดทำโดย RubyGems เอง Gemcutter gem ทั้งหมด (และในไม่ช้า RubyGems ที่เหมาะสม) ให้คุณทำคือกด RubyGem โดยใช้ API gemcutter.org/pages/gem_docs gemcutter.org/pages/api_docs
qrush

ขอบคุณฉันได้แก้ไขคำตอบแล้ว
Jack Chu

6

นี่คือวิธีที่ฉันมักจะสร้างและปล่อยอัญมณี:

  1. สมัครใช้งานhttps://github.com
  2. สมัครใช้งานhttps://rubygems.org
  3. $ gem install ore rubygems-tasks rdoc rspec
  4. $ mine awesome_gem
  5. cd awesome_gem/และการแก้ไขREADME.rdocและawesome_gem.gemspecรหัสในการเขียนและการเพิ่มการทดสอบในlib/awesome_gem/ RSpecspecs/
  6. เมื่อคุณพร้อมที่จะปล่อยให้อัปเดตChangeLog.rdocไฟล์เรียกใช้rake specและrake rerdocเปิดhtml/index.htmlและตรวจสอบความผิดพลาดใด ๆ
  7. rake release
  8. (ไม่บังคับ) ส่งลิงก์และคำอธิบายของสุดยอดอัญมณีใหม่ของคุณไปที่http://rubyflow.com

นั่งเอนหลังอาบแดดในเกียรติของอัญมณีชิ้นแรกของคุณ :)


6

คุณไม่จำเป็นต้องเริ่มเขียนอัญมณีเพียงแค่เขียนโค้ดเขียนแบบทดสอบใช้ตามที่คุณต้องการและเมื่อคุณพอใจกับมันแล้วให้ใช้สิ่งนี้เพื่อสร้าง Rakefile ที่เกี่ยวข้อง

ช่วยถ้าคุณยึดติดกับแนวทางที่พลอยอื่นใช้ (มีไดเรกทอรี lib หลีกเลี่ยงการตั้งชื่อไฟล์ด้วยวิธีที่อาจขัดแย้งกับอัญมณีอื่น ๆ เขียนการทดสอบบางอย่างถ้าคุณทำได้มี readme) แต่ก็ไม่จำเป็น

เมื่อคุณมีสิ่งที่คุณต้องการที่จะร่วมกันวางไว้บนGitHubและผลักดันให้gemcutter

อย่าคิดมากอย่าใช้จอบหรือเครื่องมือ overkill อื่น ๆ สนุกไปกับสิ่งที่ฉันไม่ทำ

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.