From 7b6c5ed7dbc2fcbaaf56deacd8061b3da51221e7 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Sat, 27 Jun 2009 15:41:29 +0200 Subject: Added parent option to model generator. --- .../lib/generators/active_record/model/model_generator.rb | 14 +++++--------- .../lib/generators/active_record/model/templates/model.rb | 2 +- railties/lib/generators/base.rb | 4 +++- railties/test/generators/model_generator_test.rb | 5 +++++ 4 files changed, 14 insertions(+), 11 deletions(-) (limited to 'railties') diff --git a/railties/lib/generators/active_record/model/model_generator.rb b/railties/lib/generators/active_record/model/model_generator.rb index 448bf5c37f..45e773fde1 100644 --- a/railties/lib/generators/active_record/model/model_generator.rb +++ b/railties/lib/generators/active_record/model/model_generator.rb @@ -5,16 +5,11 @@ module ActiveRecord check_class_collision - # TODO Add parent support + conditional_class_option :timestamps + conditional_class_option :migration - # TODO Add DEFAULTS support - class_option :skip_timestamps, :type => :boolean, :default => false, - :desc => "Don't add timestamps to the migration file" - - # TODO Make this a invoke_if - # TODO Add DEFAULTS support - class_option :skip_migration, :type => :boolean, :default => false, - :desc => "Don't generate a migration file" + class_option :parent, :type => :string, :default => "ActiveRecord::Base", + :desc => "The parent class for the generated model" def create_model_file template 'model.rb', File.join('app/models', class_path, "#{file_name}.rb") @@ -28,6 +23,7 @@ module ActiveRecord # }, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}" # end end + end end end diff --git a/railties/lib/generators/active_record/model/templates/model.rb b/railties/lib/generators/active_record/model/templates/model.rb index 0656b06dfe..fb337d10e6 100644 --- a/railties/lib/generators/active_record/model/templates/model.rb +++ b/railties/lib/generators/active_record/model/templates/model.rb @@ -1,4 +1,4 @@ -class <%= class_name %> < ActiveRecord::Base +class <%= class_name %> < <%= options[:parent] %> <% attributes.select {|attr| attr.reference? }.each do |attribute| -%> belongs_to :<%= attribute.name %> <% end -%> diff --git a/railties/lib/generators/base.rb b/railties/lib/generators/base.rb index b9ec9eea62..5dd3b2aa84 100644 --- a/railties/lib/generators/base.rb +++ b/railties/lib/generators/base.rb @@ -5,9 +5,11 @@ module Rails DEFAULTS = { :fixture => true, :helper => true, + :migration => true, :orm => 'active_record', :test_framework => 'test_unit', - :template_engine => 'erb' + :template_engine => 'erb', + :timestamps => true } ALIASES = { diff --git a/railties/test/generators/model_generator_test.rb b/railties/test/generators/model_generator_test.rb index 904f77242d..55c08d0199 100644 --- a/railties/test/generators/model_generator_test.rb +++ b/railties/test/generators/model_generator_test.rb @@ -11,6 +11,11 @@ class ModelGeneratorTest < GeneratorsTestCase assert_file "app/models/account.rb", /class Account < ActiveRecord::Base/ end + def test_orm_with_parent_option + run_generator ["account", "--parent", "Admin::Account"] + assert_file "app/models/account.rb", /class Account < Admin::Account/ + end + def test_invokes_default_test_framework run_generator assert_file "test/unit/account_test.rb", /class AccountTest < ActiveSupport::TestCase/ -- cgit v1.2.3