Создание генератора для Rails

Posted on February 10, 2007
По прежнему работая с Liquid я понял, что мне надоело писать код Drop`ов руками .... и решил сделать небольшой генератор.
Итак, в директории lib/ создаём generators
В ней размещаются все генераторы. Создаём в ней директорию liquid_drop
в ней нам необходимо создать наш генератор и шаблоны к нему в поддиректории templates/
Код генератора (liquid_drop_generator.rb)

class LiquidDropGenerator < Rails::Generator::Base
	attr_reader   :drop_name
	attr_reader   :actions

	def initialize(runtime_args, runtime_options = {})
	    super
	    @drop_name = args.shift || "example"
	    @actions = args
	end

	def manifest
		record do |m|
			 m.template 'drop.rb', File.join('app/drops',"#{drop_name}_drop.rb")
		end
	end
end
И код шаблона (templates/drop.rb)

class <%= drop_name %>Drop < Liquid::Drop

  def initialize(item) 
      @item = item
  end  

<% for action in actions -%>
  def <%= action %>
      
  end
  
<% end -%>

end
Конечно это очень простой генератор, но мне пока хватает и его ))
как всегда fast and dirty