diff options
Diffstat (limited to 'railties/lib/generators')
-rw-r--r-- | railties/lib/generators/base.rb | 36 | ||||
-rw-r--r-- | railties/lib/generators/rails/app/templates/config/environment.rb | 26 | ||||
-rw-r--r-- | railties/lib/generators/rails/plugin/plugin_generator.rb | 5 |
3 files changed, 49 insertions, 18 deletions
diff --git a/railties/lib/generators/base.rb b/railties/lib/generators/base.rb index c1acd4c94f..1be0dd6ec2 100644 --- a/railties/lib/generators/base.rb +++ b/railties/lib/generators/base.rb @@ -110,7 +110,7 @@ module Rails names.each do |name| defaults = if options[:type] == :boolean { } - elsif [true, false].include?(options.fetch(:default, Rails::Generators.options[name])) + elsif [true, false].include?(options.fetch(:default, default_value_for_option(name))) { :banner => "" } else { :desc => "#{name.to_s.humanize} to be invoked", :banner => "NAME" } @@ -143,8 +143,8 @@ module Rails # def self.class_option(name, options={}) #:nodoc: options[:desc] = "Indicates when to generate #{name.to_s.humanize.downcase}" unless options.key?(:desc) - options[:aliases] = Rails::Generators.aliases[name] unless options.key?(:aliases) - options[:default] = Rails::Generators.options[name] unless options.key?(:default) + options[:aliases] = default_aliases_for_option(name) unless options.key?(:aliases) + options[:default] = default_value_for_option(name) unless options.key?(:default) super(name, options) end @@ -205,6 +205,36 @@ module Rails end end + # Return the default value for the option name given doing a lookup in + # Rails::Generators.options. + # + def self.default_value_for_option(option) + options = Rails::Generators.options + + if options[generator_name.to_sym].key?(option) + options[generator_name.to_sym][option] + elsif options[base_name.to_sym].key?(option) + options[base_name.to_sym][option] + else + options[:rails][option] + end + end + + # Return default aliases for the option name given doing a lookup in + # Rails::Generators.aliases. + # + def self.default_aliases_for_option(option) + aliases = Rails::Generators.aliases + + if aliases[generator_name.to_sym].key?(option) + aliases[generator_name.to_sym][option] + elsif aliases[base_name.to_sym].key?(option) + aliases[base_name.to_sym][option] + else + aliases[:rails][option] + end + end + # Keep hooks configuration that are used on prepare_for_invocation. # def self.hooks #:nodoc: diff --git a/railties/lib/generators/rails/app/templates/config/environment.rb b/railties/lib/generators/rails/app/templates/config/environment.rb index 02fbb57b87..59c1f0bfb2 100644 --- a/railties/lib/generators/rails/app/templates/config/environment.rb +++ b/railties/lib/generators/rails/app/templates/config/environment.rb @@ -45,20 +45,22 @@ Rails::Initializer.run do |config| # Configure generators default options. config.generators do |g| - # Scaffold configuration - g.helper = true - g.layout = true - g.stylesheets = true + g.rails do |r| + r.helper = true + r.stylesheets = true + end - # ORM configuration - g.orm = :active_record - g.timestamps = true + g.orm :active_record do |ar| + ar.migration = true + ar.timestamps = true + end - # Template engine configuration - g.template_engine = :erb + g.template_engine :erb do |erb| + erb.layout = true + end - # Test framework configuration - g.test_framework = :test_unit - g.fixtures = true + g.test_framework :test_unit do |tu| + tu.fixtures = true + end end end diff --git a/railties/lib/generators/rails/plugin/plugin_generator.rb b/railties/lib/generators/rails/plugin/plugin_generator.rb index 49fe409ea8..a7417f28c2 100644 --- a/railties/lib/generators/rails/plugin/plugin_generator.rb +++ b/railties/lib/generators/rails/plugin/plugin_generator.rb @@ -3,8 +3,7 @@ require 'generators/rails/generator/generator_generator' module Rails module Generators class PluginGenerator < NamedBase - class_option :tasks, :type => :boolean, :aliases => "-t", :default => false, - :desc => "When supplied creates tasks base files." + class_option :tasks, :desc => "When supplied creates tasks base files." check_class_collision @@ -21,7 +20,7 @@ module Rails directory 'tasks', plugin_dir('tasks') end - hook_for :generator, :aliases => "-g", :type => :boolean do |instance, generator| + hook_for :generator do |instance, generator| instance.inside_with_padding instance.send(:plugin_dir) do instance.invoke generator, [ instance.name ], :namespace => false end |