Есть несколько инструментов, которые помогут вам создать свои драгоценные камни. мотыга и 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
, и ваш скелет будет зарезервирован, а скелет по умолчанию будет использован снова.
(От редакции. Я написал сообщение в блоге об этом несколько месяцев назад, и большая его часть скопирована с него.)