From d1c404ee90ea7470d662517aa7a2d312a61c8c61 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Fri, 3 Jul 2009 12:10:09 +0200 Subject: Added lookup to generators. --- railties/lib/generators/base.rb | 3 +- .../rails/controller/controller_generator.rb | 2 +- .../generators/rails/plugin/plugin_generator.rb | 47 +++++++++------------- .../rails/resource/resource_generator.rb | 2 +- .../test_unit/plugin/plugin_generator.rb | 2 +- 5 files changed, 24 insertions(+), 32 deletions(-) (limited to 'railties/lib/generators') diff --git a/railties/lib/generators/base.rb b/railties/lib/generators/base.rb index 4b47ebc49b..f0d2b4980e 100644 --- a/railties/lib/generators/base.rb +++ b/railties/lib/generators/base.rb @@ -3,7 +3,6 @@ require 'generators/actions' module Rails module Generators DEFAULTS = { - :actions => [], :fixture => true, :force_plural => false, :helper => true, @@ -147,7 +146,7 @@ module Rails # end # class_eval <<-METHOD, __FILE__, __LINE__ - def invoke_for_#{name} + def hook_for_#{name} return unless options[#{name.inspect}] klass_name = options[#{name.inspect}] diff --git a/railties/lib/generators/rails/controller/controller_generator.rb b/railties/lib/generators/rails/controller/controller_generator.rb index 53e839d34d..3fed058c00 100644 --- a/railties/lib/generators/rails/controller/controller_generator.rb +++ b/railties/lib/generators/rails/controller/controller_generator.rb @@ -1,7 +1,7 @@ module Rails module Generators class ControllerGenerator < NamedBase - argument :actions, :type => :array, :default => DEFAULTS[:actions], :banner => "action action" + argument :actions, :type => :array, :default => [], :banner => "action action" check_class_collision :suffix => "Controller" def create_controller_files diff --git a/railties/lib/generators/rails/plugin/plugin_generator.rb b/railties/lib/generators/rails/plugin/plugin_generator.rb index ec563be805..9eaf902021 100644 --- a/railties/lib/generators/rails/plugin/plugin_generator.rb +++ b/railties/lib/generators/rails/plugin/plugin_generator.rb @@ -1,51 +1,44 @@ module Rails module Generators class PluginGenerator < NamedBase - class_option :with_tasks, :type => :boolean, :aliases => "-r", :default => false, - :desc => "When supplied creates tasks base files." + class_option :tasks, :type => :boolean, :aliases => "-t", :default => false, + :desc => "When supplied creates tasks base files." - class_option :with_generator, :type => :boolean, :aliases => "-g", :default => false, - :desc => "When supplied creates generator base files." + class_option :generator, :type => :boolean, :aliases => "-g", :default => false, + :desc => "When supplied creates generator base files." check_class_collision - def create_root - self.root = File.expand_path("vendor/plugins/#{file_name}", root) - empty_directory '.' if behavior == :invoke - FileUtils.cd(root) - end - def create_root_files - %w(README MIT-LICENSE Rakefile init.rb install.rb uninstall.rb).each do |file| - template file - end + directory '.', plugin_dir, false # non-recursive end def create_lib_files - directory 'lib' + directory 'lib', plugin_dir('lib'), false # non-recursive end hook_for :test_framework def create_tasks_files - return unless options[:with_tasks] - directory 'tasks' + return unless options[:tasks] + directory 'tasks', plugin_dir('tasks') end def create_generator_files - return unless options[:with_generator] - directory 'generators' + return unless options[:generator] + directory 'generators', plugin_dir('generators') end - # Work around for generator to work on revoke. If we remove the root - # folder at the beginning, it will raise an error since FileUtils.cd - # will move to a non-existent folder. - # - def remove_on_revoke - return unless behavior == :revoke - FileUtils.cd("../../..") - empty_directory "vendor/plugins/#{file_name}" - end + protected + + def plugin_dir(join=nil) + if join + File.join(plugin_dir, join) + else + "vendor/plugins/#{file_name}" + end + end + end end end diff --git a/railties/lib/generators/rails/resource/resource_generator.rb b/railties/lib/generators/rails/resource/resource_generator.rb index 8ff6d820f2..70babc0550 100644 --- a/railties/lib/generators/rails/resource/resource_generator.rb +++ b/railties/lib/generators/rails/resource/resource_generator.rb @@ -7,7 +7,7 @@ module Rails base.invoke controller, [ base.name.pluralize, base.options[:actions] ] end - class_option :actions, :type => :array, :banner => "ACTION ACTION", + class_option :actions, :type => :array, :banner => "ACTION ACTION", :default => [], :desc => "Actions for the resource controller" class_option :singleton, :type => :boolean, :desc => "Supply to create a singleton controller" diff --git a/railties/lib/generators/test_unit/plugin/plugin_generator.rb b/railties/lib/generators/test_unit/plugin/plugin_generator.rb index 293342c5d8..fd8c4cb413 100644 --- a/railties/lib/generators/test_unit/plugin/plugin_generator.rb +++ b/railties/lib/generators/test_unit/plugin/plugin_generator.rb @@ -6,7 +6,7 @@ module TestUnit check_class_collision :suffix => "Test" def create_test_files - directory 'test' + directory 'test', "vendor/plugins/#{file_name}/test" end end end -- cgit v1.2.3