Итак, в директории 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