generators/rhogen.rb in rhodes-0.2.0 vs generators/rhogen.rb in rhodes-0.2.1

- old
+ new

@@ -1,120 +1,125 @@ require 'rubygems' require 'templater' module Rhogen - + extend Templater::Manifold - + desc <<-DESC Generate rhodes application DESC - + class BaseGenerator < Templater::Generator def class_name name.gsub('-', '_').camel_case end - + alias_method :module_name, :class_name end - + class AppGenerator < BaseGenerator - + def self.source_root File.join(File.dirname(__FILE__), 'templates', 'application') end - + desc <<-DESC Generates a new rhodes application. This will create a new directory with two files: application.rb and index.html DESC - + #option :testing_framework, :desc => 'Specify which testing framework to use (spec, test_unit)' - + first_argument :name, :required => true, :desc => "application name" - + template :application do |template| template.source = 'application.rb' template.destination = "#{name}/application.rb" end - + template :index do |template| - template.source = 'index.html' - template.destination = "#{name}/index.html" + template.source = 'index.erb' + template.destination = "#{name}/index.erb" end - + + template :layout do |template| + template.source = 'layout.erb' + template.destination = "#{name}/layout.erb" + end + end - + class ModelGenerator < BaseGenerator - + def self.source_root File.join(File.dirname(__FILE__), 'templates', 'model') end - + desc <<-DESC - Generates a new model for a given source. You must specify name, source_url, and source_id. + Generates a new model for a given source. You must specify name, source_url, and source_id. You can also specify an optional attribute list in the form: 'attribute1', 'attribute2', 'attribute3'... DESC - + #option :testing_framework, :desc => 'Specify which testing framework to use (spec, test_unit)' - + first_argument :name, :required => true, :desc => "model name" second_argument :source_url, :required => true, :desc => "source url" third_argument :source_id, :required => true, :desc => "source id" fourth_argument :attributes, :as => :array, :default => [], :required => false, :desc => "array of attributes (only string suppported right now)" - + template :config do |template| template.source = 'config.rb' template.destination = "#{name.camel_case}/config.rb" end - + template :index do |template| template.source = 'index.erb' template.destination = "#{name.camel_case}/index.erb" end - + template :edit do |template| template.source = 'edit.erb' template.destination = "#{name.camel_case}/edit.erb" end - + template :new do |template| template.source = 'new.erb' template.destination = "#{name.camel_case}/new.erb" end - + template :controller do |template| template.source = 'controller.rb' template.destination = "#{name.camel_case}/controller.rb" end - + def attributes? self.attributes && !self.attributes.empty? end - + end - + class SourceGenerator < BaseGenerator def self.source_root File.join(File.dirname(__FILE__), 'templates', 'source') end - + desc <<-DESC - Generates a new source adapter with the given name and attributes. You must specify name. + Generates a new source adapter with the given name and attributes. You must specify name. You can also specify an optional attribute list in the form: 'attribute1', 'attribute2', 'attribute3'... DESC - + first_argument :name, :required => true, :desc => "model name" second_argument :attributes, :as => :array, :default => [], :required => false, :desc => "array of attributes (only string suppported right now)" - + template :config do |template| template.source = 'source_adapter.rb' template.destination = "lib/#{name.snake_case}.rb" end - + end - + add :app, AppGenerator add :model, ModelGenerator add :source, SourceGenerator - + end \ No newline at end of file