Итак, вы создали рубиновую библиотеку.
Как вы создаете и публикуете свой rubygem? И какие распространенные ловушки и gotchas существуют для создания и публикации рубигемов?
Итак, вы создали рубиновую библиотеку.
Как вы создаете и публикуете свой rubygem? И какие распространенные ловушки и gotchas существуют для создания и публикации рубигемов?
Есть несколько инструментов, которые помогут вам построить свои собственные драгоценные камни. 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
, и ваш скелет будет скопирован, а скелет по умолчанию будет снова использован.
(Редакционное примечание: я написал сообщение в блоге об этом несколько месяцев назад, и большая часть этого копируется из него.)
Я рекомендую github как место для начала, особенно для проектов с открытым исходным кодом.
И попробуйте также поиск в Google... Очень первый результат поиска для меня...
Вы также можете проверить драгоценный камень Hoe, который может автоматизировать процесс создания драгоценных камней.
Смотрите: http://nubyonrails.com/articles/tutorial-publishing-rubygems-with-hoe
На самом деле я написал учебник именно этого, и я написал его, когда учился. Это больше сосредоточилось на игре, которую я написал, чем на библиотеке. Кроме того, предполагается, что вы хотите построить драгоценный камень с помощью рейка, а не по своему усмотрению:
hoe больше не добавляет себя как зависимость от рубигемов 1.2. Его рейк-задачи сосредоточены на развертывании рубигема для рубинга. Если вы просто хотите служить драгоценному камню из github, я думаю, что для этого вам нужны новые инструменты для сбора урожая.