class MessageGenerator < Rails::Generator::NamedBase def manifest record do |m| # Check for class naming collisions. m.class_collisions class_path, class_name, "#{class_name}Test" # Model, test, and fixture directories. m.directory File.join('app/mmessages', class_path) m.directory File.join('test/unit', class_path) m.directory File.join('test/fixtures', class_path) # Model class, unit test, and fixtures. m.template 'message.rb', File.join('app/messages', class_path, "#{file_name}.rb") m.template 'unit_test.rb', File.join('test/unit', class_path, "#{file_name}_test.rb") m.template 'fixtures.xml', File.join('test/fixtures', class_path, "#{file_name}.xml") end end protected def banner "Usage: #{$0} generate MessageName [field:type, field:type]" end def add_options!(opt) opt.separator '' end end