המדריך הלא (רחוק מלהיות) מושלם ליצירת gem ברובי

קובץ gem הוא בעצם קובץ tar המכיל בתוכו עוד כמה קבצים המתארים איך ומה לעשות בשביל להתקין ספריות עבור שפת רובי (בעיקר).  gem הוא בעצם סוג של חבילת התקנה ממש כמו מנהל החבילות הקרובות להפצתכם (בלינוקס וFreeBSD בעיקר).

gem בניגוד למרבית מנהלי החבילות האחרות, יודע גם להתמודד עם כמה גרסאות של אותה חבילה, ולטעון רק את זו שאנחנו רוצים. כך שאם יש לנו 4 גרסאות של אותה ספרייה, וקוד legacy שמשתמש בגרסה 1.0 מול קוד חדש אשר משתמש בגרסה 8.4, אז שניהם ניתנים להתקנה ולשימוש באותו הזמן, שזה יתרון מאוד גדול מצד אחד, אבל מצד שני זה כאב ראש לא קטן אם לא נותנים על כך את הדעת ולא יודעים להתמודד עם הנושא, היות ואם אנחנו זקוקים לגרסה 8.4 אבל טענו את גרסה 1.99 אשר היא גרסת מעבר לגרסה 2, אז אולי הדברים לא יתפקדו כמו שרצינו. וזה יקרה אם נשאיר ליד הגורל לבחור עבורינו את הגרסה הרצויה.

אז נגיד ויש לנו ספרייה מגניבה בשם IK Utils (קצת נרקסיסטי אני יודע), שכל מה שהיא עושה זה צליל של ping (רגע זה בכלל קשור לשפה אחרת…), ואנחנו רוצים לתת לה אריזה יפה שיהיה אפשר להתקין אותה באמצעות ruby gem. אז בשביל זה אנחנו צריכים ליצור קובץ, נגיד ניתן לו את השם ik_utils.gemspec (הסיומת מאוד רצויה, אבל לא חובה) וכתוב בה את הקוד הבא:

Gem::Specification.new do |s|
  s.name = %q{ik-utils}
  s.version = "0.1"
  s.date = %q{2010-09-14}
  s.authors = ["Ido.K."]
  s.email = %q{idok at something something something ...}
  s.summary = %q{This is an util that does ping}
  s.homepage = %q{http://ik.homelinux.org/}
  s.description = %q{This is an util that does ping when the administration enters the room, and it's the most expensive util at the room}
  s.files = ['LICENSE', 'doc/ping.html', 'README', 'exampels/ping.rb', 'test/ping.features', 'test/ping.rb', 'lib/ik/utils/ping.rb']
end

ועכשיו מה שאנחנו צריכים זה ליצור gem (אחרי שדאגנו שכל הקבצים נמצאים באותה הספרייה של קובץ ה gemspec) על ידי השורה הבאה:

$ gem build ik_utils.gemspec

וזהו יש לנו gem פשוט וקל.

מחשבה אחת על “המדריך הלא (רחוק מלהיות) מושלם ליצירת gem ברובי

  1. פינגבק: ה gem הראשון שלי | לראות שונה

להשאיר תגובה

הזינו את פרטיכם בטופס, או לחצו על אחד מהאייקונים כדי להשתמש בחשבון קיים:

הלוגו של WordPress.com

אתה מגיב באמצעות חשבון WordPress.com שלך. לצאת מהמערכת / לשנות )

תמונת Twitter

אתה מגיב באמצעות חשבון Twitter שלך. לצאת מהמערכת / לשנות )

תמונת Facebook

אתה מגיב באמצעות חשבון Facebook שלך. לצאת מהמערכת / לשנות )

תמונת גוגל פלוס

אתה מגיב באמצעות חשבון Google+ שלך. לצאת מהמערכת / לשנות )

מתחבר ל-%s