Предложения по созданию Ruby Gem (т.е. настройка, окружение и т. Д.) - PullRequest
1 голос
/ 19 июня 2010

Я занимаюсь разработкой приложений на Rails около года и начинаю новый проект (на самом деле это 3 проекта). Я хотел бы написать несколько драгоценных камней, которые могут быть разделены между этими проектами, чтобы поддерживать общую кодовую базу. В какой-то момент они, вероятно, в конечном итоге превратятся в движки Rails, но для начала просто общие библиотеки, которые могут быть включены в каждое приложение.

Раньше я никогда не писал rubygem, поэтому я ищу советы и хитрости относительно того, где и как я должен начать создавать этот драгоценный камень:

  • Легче ли начинать программировать его, вложив его в приложение rails, скажем, как подмодуль git, чтобы использовать преимущества существующей среды rails и т. Д ...?
  • Должен ли я начать программировать это как отдельную библиотеку? (мой опыт работы без рельсов довольно прост, поэтому я не уверен насчет структуры / настройки / тестирования)

Я бы хотел как можно больше придерживаться простых соглашений Rails с надлежащей средой тестирования и т. Д. Вероятно, еще не будет адептов Rails3, но, очевидно, пойдет в этом направлении.

Любые советы, хитрости, предложения или рекомендуемые ресурсы все с благодарностью !!

Ответы [ 3 ]

0 голосов
/ 21 июня 2010

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

Однако вам удается вытащить многократно используемые части кода, как только у вас будет готов код (или раньше, если вы так катаетесь), вы можете взглянуть на ювелира, http://github.com/technicalpickles/jeweler, особенно, если вы собираетесь поделиться жемчужиной с сообществом.

Есть также книга: Практические рубиновые самоцветы , она немного устарела, но вы можете найти использованную копию менее чем за 1 доллар.

0 голосов
/ 21 апреля 2011

Ювелир великолепен, но есть пара альтернатив, на которые стоит обратить внимание:

  • bundle gem yourgemname создает простую структуру, в которой вы самостоятельно управляете файлом gemspec (см. Railscasts эпизод 245 )
  • enginex yourgemname создает приложение пустышки-пустышки rails3 внутри test / spec (пропустите -t rspec, если вы предпочитаете тестовую среду). Найдите его на github .
0 голосов
/ 19 июня 2010

Что я обычно делаю, так это сначала пишу встроенную функциональность там, где она мне нужна - например, уровень модели и т. Д. Когда я замечаю, что она может быть повторно использована, она извлекает ее в отдельный модуль в lib / ext / modulename.И когда становится ясно, что этот фрагмент функциональности можно использовать как отдельный гем, я просто создаю новый проект, переносю код в правильную структуру, обрабатываю любую возможную инициализацию, добавляю документацию и фиксирую в github.

Позжекогда вам нужно внести изменения в gem, я просто делаю свои вещи в отдельном проекте, собираю gem, устанавливаю его с помощью gem install --local project.gem.Вы также можете установить его из git как плагин, отредактировать его прямо в директории вендора, а затем скопировать изменения в проект gem.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...