Полезные хитрости кодинга: То, что приходится каждый день искать в Интернете…

Как использовать генераторы в своем приложении

Недавно возникла необходимость использовать генераторы файлов в своем приложении. В Rails все уже написано и очевидно, что стоит использовать уже готовый код. Вопрос только в том, как использовать код, который достаточно тесно интегрирован в Rails.

Двухчасовые исследования показали, что все достаточно несложно (на примере Rake-файла):

require 'rails/generators'

module Rails
  def self.application
    nil
  end
end

class DocumentScaffoldGenerator < Rails::Generators::NamedBase

  def manifest
    template "templates/document.tex", "src/document.tex"
  end

end

DocumentScaffoldGenerator.source_root(File.dirname(__FILE__))

task :scaffold do
  Rails::Generators.invoke('document_scaffold')
end

Сам манифест генератора пишется с использованием хелперов Thor.

Небольшой monkey-patch в начале нужен, чтобы сказать, что никакого Rails-приложения тут на самом деле нет и не будет.

Вы можете следить за обсуждением с помощью RSS 2.0 ленты.