โครงสร้าง 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 ในทันที — ไม่ต้องติดตั้งในเครื่องของคุณ