รวบรวมเด็ก ๆ และให้ปู่เล่าถึงวิถีชีวิตในสมัยก่อนเมื่อชีวิตยากลำบาก และการติดตั้งอัญมณีเป็นความเจ็บปวดที่ทำให้ปวดหัว ดึงผม และกัดฟัน
ย้อนกลับไปเมื่อฉันเพิ่งเริ่มต้นใน Ruby ไม่มี Bundler และต้องติดตั้งอัญมณีด้วยวิธีที่ยาก ใน Rails นี่หมายถึงการรัน rake gems:install
ล้านครั้ง แก้ไขข้อผิดพลาดที่เกิดขึ้นระหว่างทาง จนกว่าคำสั่งจะผ่านไปโดยไม่มีข้อผิดพลาด วันนี้เราจะมาสร้างอัญมณีในแบบฉบับของโรงเรียน หลังจากที่ได้พิจารณาว่าอัญมณีคืออะไรและทำงานอย่างไร
อัญมณี พวกมันคืออะไร
RubyGems เป็นวิธีที่ง่ายในการขยายโค้ดของคุณเองด้วยฟังก์ชันที่เขียนโดยบุคคลอื่น ตัวอย่างเช่น แทนที่จะเขียนรหัสการตรวจสอบสิทธิ์/การให้สิทธิ์ คุณสามารถใช้ Devise หรือหากคุณต้องการปรับขนาดภาพที่อัปโหลดใหม่ คุณสามารถใช้ CarrierWave ได้ วิธีนี้ทำให้คุณสามารถเขียนโค้ดที่ใช้ซ้ำได้ซึ่งคุณสามารถแชร์กับผู้อื่นได้
แต่ทำงานอย่างไร?
ในรูปแบบพื้นฐานที่สุด gem ไม่มีอะไรมากไปกว่าไดเร็กทอรี zipped-up ที่มีโค้ดและ <name>.gemspec
ไฟล์. .gemspec
นี้ file มีข้อมูลเมตาเกี่ยวกับ gem เช่น ชื่อ ไฟล์ที่จะโหลด และการอ้างอิง
gem install
หรือ bundle
คำสั่งดาวน์โหลดไฟล์ zip จากแหล่งที่มาและแตกไฟล์ไปยังฮาร์ดไดรฟ์ของคุณ คุณสามารถค้นหาตำแหน่งของอัญมณีได้โดยเรียกใช้ bundle info <gem name>
หรือโดยการเปิดไดเร็กทอรี gem โดยตรงโดยเรียกใช้ bundle open <gem name>
.
ในการโหลดอัญมณีลงในแอปพลิเคชันของคุณ Rubygems monkey-patches require
ฟังก์ชันใน Kernel
ระดับ. อันดับแรกจะพยายามอ่านไฟล์จากดิสก์ และหากไม่ได้ผล จะพยายามแก้ไขไฟล์ในแต่ละ gems ในระบบของคุณ เมื่อพบไฟล์ในอัญมณีแล้ว จะ "เปิดใช้งาน" อัญมณีโดยเพิ่มไปยังเส้นทางการโหลด
หากคุณใช้ Bundler จะเพิ่มเจมเฉพาะแต่ละรายการไปยังเส้นทางการโหลดระหว่าง setup
เรียก. วิธีนี้ช่วยลดความยุ่งยากในการพยายามแก้ไขเส้นทาง Rubygems นอกจากนี้ยังป้องกันไม่ให้ Ruby โหลดอัญมณีเวอร์ชันอื่นนอกเหนือจากที่เลือกไว้ใน Gemfile(.lock)
ฉันจะสร้างมันได้อย่างไร
วิธีที่ง่ายที่สุดในการสร้างอัญมณีของคุณเองคือการใช้ Bundler เพื่อสร้างฐานอัญมณี ซึ่งรวมถึงโครงสร้างไดเรกทอรีที่เหมาะสม ใบอนุญาต จรรยาบรรณ และสภาพแวดล้อมการทดสอบอัญมณี
อย่างไรก็ตาม วันนี้เราจะมาสร้างเกมแนวมินิมอลของเราเองด้วยไฟล์เพียงสองไฟล์ ไฟล์หนึ่งประกอบด้วยโค้ดและ gemspec
ไฟล์ที่มีข้อมูลเมตา อัญมณีของเราจะทักทายผู้ใช้เมื่อถูกเรียก เริ่มต้นด้วยการสร้างไดเร็กทอรีสำหรับอัญมณีของเรา
mkdir howdy
cd howdy
ในไดเรกทอรีนี้ เราจะสร้าง lib
โฟลเดอร์ที่จะบรรจุโค้ดและ howdy.gemspec
ไฟล์ที่จะมีข้อมูลเมตา ควรมีลักษณะดังนี้:
tree
.
├── howdy.gemspec
└── lib
└── howdy.rb
ฮาวดี้เจมของเรามีรหัสดังต่อไปนี้:
lib/howdy.rb
class Howdy
def greet
"howdy!"
end
end
howdy.gemspec
ที่เรียบง่าย file มีข้อมูลเกี่ยวกับรุ่น ผู้แต่ง ฯลฯ นอกจากนี้ยังระบุไฟล์ที่จะเก็บไว้เมื่อสร้างอัญมณี ซึ่งจะป้องกันไม่ให้ผู้ใช้ gem ดาวน์โหลดไฟล์ที่ไม่จำเป็น เช่น การทดสอบ และไฟล์อื่นๆ ที่ไม่จำเป็นเพื่อเรียกใช้โค้ด gem
Gem::Specification.new do |spec|
spec.name = "howdy"
spec.version = "0.0.1"
spec.authors = ["Robert Beekman"]
spec.email = ["[email protected]"]
spec.summary = %(Greets the user)
spec.description = %(Howdy is a gem that greets the user when called)
spec.license = "MIT"
spec.files = ["lib/howdy.rb"]
end
ในการสร้างอัญมณี เราสามารถใช้ gem build howdy.gemspec
สั่งการ. มันสร้าง howdy-0.0.1.gem
ไฟล์ที่มีรหัสของคุณ หากต้องการเผยแพร่อัญมณีให้กับผู้อื่น คุณสามารถเผยแพร่ไปที่ rubygems.org ด้วย gem publish
คำสั่ง
สรุป
นี่คือขั้นตอนที่จำเป็นในการสร้างและเผยแพร่อัญมณีพื้นฐาน เราหวังว่าคุณจะสนุกกับการดำน้ำในโบราณคดีของอัญมณี และวิธีการสร้างอัญมณีแบบโรงเรียนเก่า ดังที่กล่าวไว้ก่อนหน้านี้เพื่อการศึกษา เราขอแนะนำให้ใช้ Bundler เพื่อสร้างร้านอัญมณีในโลกปัจจุบัน
ใจเย็นๆวัยรุ่น! หากคุณมีความคิด คำถาม หรือความคิดเห็น โปรดแจ้งให้เราทราบ