Подтвердить что ты не робот

Как извлечь помощники вида Rails в драгоценный камень?

У меня есть набор рельсов для просмотра помощников, которые я использую регулярно, и хотел бы упаковать их в драгоценный камень, чтобы я мог просто поместить строку в свой Gemfile и получить доступ к помощникам из моих представлений.

Я создал драгоценные камни, прежде чем использовать Bundler и Jeweler, однако я не совсем понимаю, как организовать помощники вида Rails в драгоценном камне и включить их в рельсы.

Я был бы признателен за любые указатели или ссылки на современные учебники о том, как это сделать для Rails 3

Спасибо

Просто пояснить: вопрос не в том, "как создать драгоценный камень". Его "как упаковать помощники вида в драгоценности, поэтому я могу использовать их в Rails"

Изменить 2: Я также согласен с плакатом ниже. Двигатель рельсов слишком сильно перегружен для такого рода (надеюсь, простого) требования

4b9b3361

Ответ 1

По-моему, полный Двигатель является излишним для этой задачи. Вместо этого вы можете просто создать Railtie, который включает ваши помощники в ActionView:: Base при инициализации.

# lib/my_gem/view_helpers.rb
module MyGem
  module ViewHelpers
    def pre(text)
      content_tag :pre, text
    end

    def another_helper
      # super secret stuff
    end
  end
end

# lib/my_gem/railtie.rb
require 'my_gem/view_helpers'
module MyGem
  class Railtie < Rails::Railtie
    initializer "my_gem.view_helpers" do
      ActionView::Base.send :include, ViewHelpers
    end
  end
end

# lib/my_gem.rb
require 'my_gem/railtie' if defined?(Rails)

Ответ 2

Также, если вы хотите включить помощник только для версии Rails3, вы можете использовать

# lib/my_gem.rb
require 'my_gem/railtie' if defined?(Rails::Railtie)

Ответ 3

Что вы, вероятно, ищете, это engine. Двигатель - это жемчужина, которая содержит куски рельсов (на самом деле, приложение рельсов само по себе является двигателем.)