0Pricing
Ruby Academy · บทเรียน

โครงสร้าง Gem

ไฟล์และ gemspec

โครงสร้าง Gem เป็นบทเรียน Ruby Academy ฟรีบน CoddyKit นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน คุณสามารถอ่านบทเรียนทั้งหมดด้านล่างฟรี — จากนั้นลองปฏิบัติด้วยตัวคุณเองในเบราว์เซอร์พร้อมตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7 บทเรียนนี้เป็นส่วนหนึ่งของเส้นทางการเรียน Ruby Academy และความก้าวหน้าของคุณจะซิงค์ข้ามเว็บและแอป CoddyKit คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน

เจมคืออะไร

เจมคือไลบรารีหรือแอปพลิเคชัน Ruby ที่จัดแพ็กเกจไว้ สามารถติดตั้ง กำหนดเวอร์ชัน และแชร์ผ่าน RubyGems ได้ เครื่องมือ Ruby แทบทุกชนิดที่คุณใช้ล้วนเป็นเจม

  • เจมจะรวมโค้ด ข้อมูลกำกับ และสิ่งที่ต้องพึ่งพาไว้ด้วยกัน
  • ข้อมูลกำกับอยู่ในไฟล์ข้อกำหนดเจม
  • เครื่องมืออย่าง bundler และ gem ใช้จัดการเจม

การสร้างโครงร่าง

วิธีเริ่มต้นที่รวดเร็วที่สุดคือ bundle gem mygem คำสั่งนี้จะสร้างโครงสร้างไดเรกทอรีมาตรฐาน ไฟล์ข้อกำหนดเจม โฟลเดอร์การทดสอบ ไฟล์ README และใบอนุญาต จากนั้นคุณจึงเติมโค้ดลงไป

โครงสร้างมาตรฐาน

เจมชื่อ mygem โดยทั่วไปจะมีโครงสร้างดังนี้:

  • lib/mygem.rb ไฟล์ทางเข้า
  • lib/mygem/ ไฟล์ต้นฉบับเพิ่มเติม
  • lib/mygem/version.rb ค่าคงที่ของเวอร์ชัน
  • mygem.gemspec ข้อมูลกำกับ
  • test/ หรือ spec/ การทดสอบ
  • README.md และไฟล์ใบอนุญาต

ไฟล์ทางเข้า

lib/mygem.rb จะถูกโหลดเมื่อมีการใช้ require 'mygem' โดยปกติไฟล์นี้จะเรียกใช้ไฟล์เวอร์ชันและส่วนที่เหลือของไลบรารี พร้อมกำหนดโมดูลระดับบนสุด

module Mygem
  def self.greet(name)
    "Hello, " + name
  end
end

puts Mygem.greet("world")

ไฟล์เวอร์ชัน

การเก็บเวอร์ชันไว้ในไฟล์แยกต่างหากทำให้ทั้งไฟล์ข้อกำหนดเจมและโค้ดสามารถอ่านค่าได้ ตามธรรมเนียมแล้วจะใช้ค่าคงที่ VERSION ภายในโมดูลของเจม

module Mygem
  VERSION = "0.1.0"
end

puts "Current version: " + Mygem::VERSION

ไฟล์ข้อกำหนดเจมคืออะไร

ไฟล์ข้อกำหนดเจมคือไฟล์ Ruby ที่อธิบายรายละเอียดของเจม ได้แก่ ชื่อ เวอร์ชัน ผู้เขียน สรุป ไฟล์ และสิ่งที่ต้องพึ่งพา RubyGems จะอ่านไฟล์นี้เพื่อสร้างและเผยแพร่แพ็กเกจ

ไฟล์นี้เป็น Ruby ปกติ คุณจึงคำนวณค่าได้ แต่ควรรักษาให้เรียบง่ายและใช้เพื่อประกาศข้อมูลเป็นหลัก

ไฟล์ข้อกำหนดเจมแบบพื้นฐาน

ฟิลด์หลัก ได้แก่ ชื่อ เวอร์ชัน ผู้เขียน สรุป และไฟล์ นี่คือโครงสร้างโดยรวมที่เขียนด้วย Ruby ปกติ ซึ่งคุณสามารถใส่ไว้ใน mygem.gemspec ได้

require "ostruct"

spec = OpenStruct.new
spec.name = "mygem"
spec.version = "0.1.0"
spec.authors = ["Your Name"]
spec.summary = "A tiny example gem"

puts spec.name + " " + spec.version

การระบุไฟล์

ไฟล์ข้อกำหนดเจมต้องระบุว่าไฟล์ใดจะถูกรวมไว้ในเจม ไฟล์ข้อกำหนดเจมจำนวนมากจะขอรายการไฟล์ที่ git ติดตามไว้ เพื่อไม่ให้มีไฟล์ใดตกหล่น:

spec.files = Dir['lib/**/*.rb'] + ['README.md']

ระบบจะจัดแพ็กเกจเฉพาะไฟล์ที่ระบุไว้เท่านั้น ดังนั้นการลืมระบุไฟล์จึงทำให้การติดตั้งเสียหายได้

การประกาศสิ่งที่ต้องพึ่งพา

สิ่งที่ต้องพึ่งพามีสองประเภทที่ระบุไว้ในไฟล์ข้อกำหนดเจม:

  • add_dependency สำหรับสิ่งที่ต้องใช้ขณะทำงานและผู้ใช้ต้องติดตั้ง
  • add_development_dependency สำหรับเครื่องมือที่ใช้เฉพาะระหว่างการพัฒนา เช่น เครื่องมือสำหรับการทดสอบ

ใช้ข้อจำกัดเวอร์ชัน เช่น '~> 1.2' เพื่อรักษาความเข้ากันได้

เวอร์ชัน Ruby ที่ต้องการ

กำหนด spec.required_ruby_version เพื่อให้ผู้ใช้ที่ใช้ Ruby เก่าเกินไปได้รับข้อผิดพลาดที่ชัดเจน แทนที่จะพบการหยุดทำงานที่สับสน นอกจากนี้ควรกรอก homepage license และ metadata เพื่อให้เจมมีความสมบูรณ์

required = ">= 3.0.0"
current = RUBY_VERSION
puts "Requires Ruby " + required
puts "Running Ruby " + current

การสร้างเจม

เมื่อไฟล์ข้อกำหนดเจมพร้อมแล้ว gem build mygem.gemspec จะสร้างไฟล์ .gem คุณสามารถติดตั้งไว้ในเครื่องด้วย gem install ./mygem-0.1.0.gem เพื่อทดสอบก่อนเผยแพร่

ตรวจสอบความเข้าใจอย่างรวดเร็ว

ทดสอบความเข้าใจของคุณเกี่ยวกับโครงสร้างเจม

สรุป: โครงสร้างเจม

คุณได้เรียนรู้วิธีจัดโครงสร้างเจม:

  • bundle gem จะสร้างโครงร่างโครงสร้าง
  • lib/mygem.rb คือจุดทางเข้า
  • เวอร์ชันจะอยู่ในไฟล์แยกต่างหาก
  • ไฟล์ข้อกำหนดเจมเก็บข้อมูลกำกับ ไฟล์ และสิ่งที่ต้องพึ่งพา
  • gem build ใช้จัดแพ็กเกจเจม

ถัดไปเราจะจัดระเบียบโค้ดจริงภายในเจม

คำถามที่พบบ่อย

บทเรียน “โครงสร้าง Gem” ฟรีหรือไม่

ใช่ — ข้อความเต็มของ “โครงสร้าง Gem” ฟรีให้อ่านที่นี่บนเว็บ เพื่อปฏิบัติแบบโต้ตอบ (ตัวแก้ไขโค้ดในตัวและติวเตอร์ AI ตลอด 24/7) และปลดล็อคส่วนที่เหลือของคอร์ส Ruby Academy ให้อัปเกรดเป็น CoddyKit PRO คอร์ส Ruby Academy มีบทเรียนทั้งหมด 4 บทเรียน

คุณจะเรียนรู้อะไรในบทเรียน “โครงสร้าง Gem”

ไฟล์และ gemspec คุณปฏิบัติ Ruby Academy ด้วยโค้ดที่ใช้งานได้จริงที่คุณเรียกใช้โดยตรงในเบราว์เซอร์ และติวเตอร์ AI ตลอด 24/7 ตอบคำถามของคุณขณะที่คุณไปผ่านบทเรียน

คุณต้องมีประสบการณ์ก่อนที่จะเริ่มเรียน Ruby Academy หรือไม่

ไม่จำเป็นต้องมีประสบการณ์มาก่อน Ruby Academy บน CoddyKit ออกแบบมาสำหรับผู้เริ่มต้นไปจนถึงผู้เรียนขั้นสูง คุณสามารถเริ่มต้นที่นี่หรือเริ่มจากตัวแรกและเรียนด้วยความเร็วของคุณเอง นี่คือบทเรียนที่ 1 จากทั้งหมด 4 บทเรียน

บทเรียน “โครงสร้าง Gem” ใช้เวลานานแค่ไหน

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

ฉันเขียนและรันโค้ดในบทเรียน Ruby Academy นี้ได้ไหม

ได้ บทเรียน Ruby Academy ทุกบทมีตัวแก้ไขโค้ดในตัว คุณจึงเขียนและรันโค้ดจริงได้เลยในเบราว์เซอร์ และได้รับข้อเสนอแนะจาก AI ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ

บทเรียนทั้งหมดในหลักสูตรนี้

  1. โครงสร้าง Gem
  2. การเขียนโค้ด
  3. การทดสอบและการกำหนดเวอร์ชัน
  4. การเผยแพร่ไปยัง RubyGems
← กลับไปที่ Ruby Academy