Pull to refresh

Знакомство с Gem. Часть первая

Reading time2 min
Views22K
Доброго времени суток!

Введение


Каждый рубист, да и вообще программист, рано или поздно начинает задумываться о написании своих библиотек. Ему начинает надоедать перетаскивание одних и тех же кусков кода в другие проекты. В Ruby лекарством от данного заболевания являются gem'ы. Итак, давайте познакомимся с ним поближе.


С чего начать


Для начала неплохо было бы отыскать запылившийся файлик с расширением .rb. Нашли? Ok, двигаемся дальше.
Далее нам необходимо создать файл с названием hello-world.gemspec, где, как вы, вероятно, догадались hello-world — имя вашего будущего gem'a.
Следующим нашим шагом будет заполнение этого самого файла (если так можно выразиться, файла-спецификации). Содержание его должно выглядеть следующим образом:
Gem:Specification.new do |g|
     g.name = 'hello-world' # имя нашего gem'a
     g.version = '1.0' # его текущая версия
     g.summary = 'This is the first gem in my life.' # описание... сами знаете чего
     g.files = ['lib'/helloworld.rb'] # список файлов
     g.author = 'krovatti' # и, разумеется, автор... как же без него...
end

Отлично, но собирать то нам пока нечего! Почему? Мы забыли создать helloworld.rb. Давайте немедленно исправим нашу оплошность:
class HelloWorld
     def initialize
          puts "Hello, World!'
     end
end

Фуууух! Теперь, когда мы имеем минимальный набор файлов, мы можем приступить к сборке нашего с вами gem'a. Для его сборки мы должны использовать команду
gem build hello-world.gemspec

В случае удачного выполнения данной операции на выходе мы получим файл с название hello-world-1.0.gem. Всё, наш gem собран.

Постойте-ка


Вы хотите поделиться своим gem'ом с другими людьми? Если да, то вы запросто можете это сделать следующей командой:
gem push hello-world-1.0.gem

После выполнения этой команды мы должны увидеть следующее:

Pushing gem to RubyGems.org...
Successfully registered gem: hello-world (1.0)

Увы, мы этого не увидим. Знаете почему? Потому, что мы с вами ещё не зарегистрированы на RubyGems. Сделать это можно здесь.
Теперь повторите команду push и всё будет ok.

All over the world


Теперь наш gem сможет установить любой рубист (хоть из Австралии), выполнив команду
gem install hello-world

После того, как установка будет завершена напишем следующий код и выполним его:
require 'rubygems'
require 'hello-world'

inst = HelloWorld.new

В результате чего мы увидим заветное
Hello, World!
в нашей консоли.

Стопэ!


Вообще-то мы наследили на RubyGems. Вы же об этом не забыли? Удалим наш gem следующей командой:
gem yank hello-world -v 1.0

Да и из нашего списка gem'ов можно удалить. Поигрались и хватит!
gem uninstall hello-world -v 1.0


Заключение


Вот и сказочке конец, а кто слушал — молодец.
Сегодня мы с вами познакомились с поистине замечательным инструментом по имени gem. Теперь вы знаете, что если что-то случиться, gem обязательно придёт к вам на помощь. А Чип, Чип, Чип… И Дейл к нам спешат...

Tags:
Hubs:
+29
Comments31

Articles