Какие шаги необходимы для создания и публикации собственного rubygem? - PullRequest
15 голосов
/ 23 сентября 2008

Итак, вы создали библиотеку ruby.

Как вы создаете и публикуете свой rubygem? И какие распространенные подводные камни и ошибки существуют при создании и публикации рубинов?

Ответы [ 6 ]

6 голосов
/ 23 сентября 2008

Есть несколько инструментов, которые помогут вам создать свои драгоценные камни. мотыга и newgem являются самыми известными и имеют много хороших качеств. Тем не менее, hoe добавляет себя в качестве зависимости от вашего драгоценного камня, и newgem стал очень большим инструментом, который я считаю громоздким, когда хочу быстро создать и развернуть драгоценный камень.

Мой любимый инструмент - Mr Bones . Автор Tim Pease. Это легкий, многофункциональный и не добавляет зависимости в ваш проект. Чтобы создать проект с ним, вы просто запускаете 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 обладает стандартным набором функций, которые вы ожидаете: вы можете использовать его для упаковки гемов и тарфайлов вашей библиотеки, а также выпустить их в RubyForge и развернуть там свою документацию. Его убийственная особенность, однако, заключается в способности заморозить свой скелет в вашем домашнем каталоге. Когда вы запускаете bones --freeze, каталог с именем .mrbones копируется в ваш домашний каталог. Вы можете отредактировать файлы там, чтобы создать каркас для ваших драгоценных камней, который будет работать так же, как вы работаете, и с тех пор, когда вы запускаете кости для создания нового камня, он будет использовать ваш личный скелет камня. Вы можете разморозить Mr Bones, запустив bones --unfreeze, и ваш скелет будет зарезервирован, а скелет по умолчанию будет использован снова.

(От редакции. Я написал сообщение в блоге об этом несколько месяцев назад, и большая его часть скопирована с него.)

3 голосов
/ 23 сентября 2008

Вы также можете воспользоваться самоцветом Hoe, который может автоматизировать процесс создания самоцвета.

См .: http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe

3 голосов
/ 23 сентября 2008

И попробуйте поиск в Google тоже ... Самый первый результат поиска для меня ...

3 голосов
/ 23 сентября 2008

Я рекомендую github в качестве места для начала, особенно для проектов с открытым исходным кодом.

1 голос
/ 30 декабря 2008

мотыга больше не добавляет себя в качестве зависимости от rubygems 1.2. Его грабли сосредоточены на развертывании rubygem в rubyforge. Если вы просто хотите подать драгоценный камень из GitHub, я думаю, что есть несколько новых инструментов для граблей Hoe-esque.

1 голос
/ 28 сентября 2008

Я действительно написал учебник именно по этому, и я написал его, когда я учился. Он больше сосредоточен на игре, которую я написал, чем на библиотеке. Кроме того, предполагается, что вы хотите собрать камень с помощью рейка, а не самостоятельно:

  • Часть 1 о том, как создать драгоценный камень.
  • Часть 2 о том, как запускать двоичные файлы, установленные вашим гемом, и получать доступ к ресурсам.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...