Какие шаги необходимо предпринять, чтобы создать и опубликовать собственный RubyGem?
Вопрос
Итак, вы создали библиотеку Ruby.
Как вы создаете и публикуете свой RubyGem?И какие распространенные ошибки и ошибки существуют при создании и публикации рубигемов?
Решение
Есть несколько инструментов, которые помогут вам создать свои собственные драгоценные камни. мотыга и Ньюджем являются самыми известными и обладают множеством хороших качеств.Однако hoe добавляет себя в качестве зависимости к вашему драгоценному камню, и newgem стал очень большим инструментом, который я считаю громоздким, когда мне нужно быстро создать и развернуть драгоценный камень.
Мой любимый инструмент Мистер Боунс Тим Пиз.Он легкий, функциональный и не добавляет зависимостей в ваш проект.Чтобы создать с его помощью проект, просто запустите bones <my_project_name>
в командной строке, и для вас создается скелет, дополненный lib
каталог для вашего кода, bin
каталог для ваших инструментов и тестовый каталог.Конфигурация находится в Rakefile
, и это ясно и лаконично.Вот конфигурация проекта, который я сделал несколько месяцев назад:
load 'tasks/setup.rb'
ensure_in_path 'lib'
require 'friend-feed'
task :default => 'test'
PROJ.name = 'friend-feed'
PROJ.authors = 'Clinton R. Nixon'
PROJ.email = 'crnixon@gmail.com'
PROJ.url = 'friend-feed.rubyforge.org'
PROJ.rubyforge_name = 'friend-feed'
PROJ.dependencies = ['json']
PROJ.version = FriendFeed::VERSION
PROJ.exclude = %w(.git pkg)
Mr Bones имеет стандартный набор функций, который вы ожидаете:вы можете использовать его для упаковки драгоценных камней и tar-файлов вашей библиотеки, а также выпустить его на RubyForge и развернуть там свою документацию.Однако его отличительной особенностью является способность заморозить свой скелет в вашем домашнем каталоге.Когда ты бежишь bones --freeze
, каталог с именем .mrbones
копируется в ваш домашний каталог.Вы можете редактировать файлы в нем, чтобы создать скелет для ваших драгоценных камней, который будет работать так же, как вы, и с этого момента, когда вы запускаете кости для создания нового драгоценного камня, он будет использовать ваш личный скелет драгоценного камня.Вы можете разморозить мистера Боунса, запустив bones --unfreeze
и ваш скелет будет скопирован, и снова будет использован скелет по умолчанию.
(Примечание редакции:Несколько месяцев назад я написал об этом сообщение в блоге, и большая часть текста скопирована оттуда.)
Другие советы
Я рекомендую github как отправная точка, особенно для проектов с открытым исходным кодом.
А еще попробуйте поискать в Гугле...Самый первый результат поиска для меня...
Вы также можете попробовать драгоценный камень Hoe, который может автоматизировать процесс создания драгоценного камня.
Видеть: http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe
На самом деле я написал руководство именно по этому вопросу, и писал его, пока учился.Он больше ориентирован на игру, которую я написал, чем на библиотеку.Кроме того, предполагается, что вы хотите собрать драгоценный камень с помощью rake, а не самостоятельно:
hoe больше не добавляется в качестве зависимости, как в Rubygems 1.2.Его рейк-задачи сосредоточены на развертывании RubyGem в RubyForge.Если вы просто хотите подать драгоценный камень с GitHub, я думаю, вам помогут некоторые новые инструменты для выполнения задач по грабли.