Как создать новый рубиновый камень? - PullRequest
33 голосов
/ 05 декабря 2010

Для создания нового драгоценного камня Ruby я должен использовать Ювелир или мне следует использовать встроенный в Bundler скелет драгоценного камня для создания базового камня? Какие различия имеют значение?

Ответы [ 6 ]

53 голосов
/ 26 июля 2012

Использование Bundler

Из командной строки:

bundle gem your_new_gem

Это создаст каталог с именем your_new_gem с базовым набором файлов и структурой каталогов, которые в настоящее время считаются лучшими. Это быстро, легко и отличное место для старта.

7 голосов
/ 05 декабря 2010

Создание драгоценного камня не так уж сложно, и я бы посоветовал попробовать создать драгоценный камень с нуля, без каких-либо инструментов. После того, как вы узнаете, что происходит (создаете gemspec, создаете и отправляете его на rubygems.org), вы можете использовать инструменты для ускорения процесса. Я думаю, что вы не будете, потому что изготовление драгоценного камня вряд ли проблема вообще.

3 голосов
/ 05 декабря 2010

Я бы пошел с ювелиром. Скелет Бандлера только даст вам основы. У Jeweler гораздо больше возможностей для работы и множество полезных граблей для управления версиями, отправки на github, создания gemspec, сборки и установки.

Если вы работаете с движками Rails 3, у меня есть Jeweler fork (безусловно, в процессе разработки), который сгенерирует скелет приложения и включит файл движка. Вам просто нужно запустить команду ювелира с --rails3-engine в качестве опции. Вот вилка, если вы заинтересованы:
https://github.com/johnmcaliley/jeweler

1 голос
/ 20 июня 2018

Вы также можете создать гем в RubyMine.Файл> Новый проект> Новый камень.Это так просто.Но я хочу сделать некоторые замечания по поводу этого подхода:

Для отладки RubyMine будет использовать гем Fast Debugger, ruby-debug-ide.Я знаю, что большинство людей сейчас используют Pry с Byebug, но ruby-debug-ide - это интерфейс, который склеивает ruby-debug с IDE, такими как Eclipse (RDT), NetBeans и RubyMine.

В разделе Run> Edit Configurations>+> Ruby, я добавляю новую конфигурацию отладки в соответствии с документацией: https://www.jetbrains.com/help/ruby/run-debug-configuration-gem-command.html#1

В разделе «Конфигурация» в разделе «Ruby Script» я добавляю путь к файлу ruby ​​gem в lib: lib / my_gem.rb В разделе «Конфигурация» в разделе «Ruby SDK» я указываю набор гемов RVM, который я использую.В разделе Bundler я проверяю «Запустить скрипт в контексте Bundler».Это будет использовать bundle exec, который будет читать зависимости в моем Gemfile в корне моего проекта.Теперь для gem, Gemfile содержит вызов метода "gemspec", который, в свою очередь, считывает зависимости в зависимостях в my_gem.gemspec.Там у меня есть зависимости, переданные в блок Gem :: Specification.new:

  spec.add_development_dependency "bundler", "~> 1.7"
  spec.add_development_dependency "rake", "~> 10.0"
1 голос
/ 20 июня 2014

Я бы порекомендовал использовать встроенную команду bundler.

bundle gem your_gem_name

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

https://netguru.co/blog/posts/creating-a-gem-a-step-by-step-tutorial

Надеюсь, это поможет.

1 голос
/ 15 февраля 2013

Вот альтернатива, на которую стоит обратить внимание: ore

Bundler предоставляет вам один шаблон для драгоценных камней в рубине, тогда как руда имеет несколько встроенных шаблонов плюс возможность создавать свои собственные.Он также поддерживает Git, SVN (urgh) и Mercurial.

...