Каковы шаги, необходимые для создания и публикации собственного рубигема?

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

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

Ответы

Ответ 1

Есть несколько инструментов, которые помогут вам построить свои собственные драгоценные камни. hoe и newgem являются самыми известными, и имеют много хороших качеств. Однако мотыга добавляет себя как зависимость от вашего драгоценного камня, а 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 = '[email protected]'
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, и ваш скелет будет скопирован, а скелет по умолчанию будет снова использован.

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

Ответ 2

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

Ответ 5

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

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

Ответ 6

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