From 79376e3c9d0838ff1562e0a46239c6b0337058b3 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Jos=C3=A9=20Valim?= Date: Thu, 4 Feb 2010 13:53:37 +0100 Subject: Update Gemfile to use latest bundler config. --- railties/lib/generators/rails/app/app_generator.rb | 36 +++++++++++++--------- .../lib/generators/rails/app/templates/Gemfile | 10 +++--- railties/test/generators/app_generator_test.rb | 7 +++++ 3 files changed, 33 insertions(+), 20 deletions(-) diff --git a/railties/lib/generators/rails/app/app_generator.rb b/railties/lib/generators/rails/app/app_generator.rb index dcb8af208f..c439ed89f5 100644 --- a/railties/lib/generators/rails/app/app_generator.rb +++ b/railties/lib/generators/rails/app/app_generator.rb @@ -9,6 +9,8 @@ module Rails::Generators class AppGenerator < Base DATABASES = %w( mysql oracle postgresql sqlite3 frontbase ibm_db ) + + attr_accessor :rails_template add_shebang_option! argument :app_path, :type => :string @@ -90,18 +92,6 @@ module Rails::Generators template "config/boot.rb" end - def gem_for_database - # %w( mysql oracle postgresql sqlite3 frontbase ibm_db ) - case options[:database] - when "mysql" then "mysql" - when "oracle" then "ruby-oci8" - when "postgresql" then "pg" - when "sqlite3" then "sqlite3-ruby" - when "frontbase" then "ruby-frontbase" - when "ibm_db" then "ibm_db" - end - end - def create_activerecord_files return if options[:skip_activerecord] template "config/databases/#{options[:database]}.yml", "config/database.yml" @@ -185,7 +175,10 @@ module Rails::Generators end protected - attr_accessor :rails_template + + def self.banner + "rails #{self.arguments.map(&:usage).join(' ')} [options]" + end def set_default_accessors! self.rails_template = case options[:template] @@ -230,8 +223,21 @@ module Rails::Generators options.dev? || options.edge? end - def self.banner - "#{$0} #{self.arguments.map(&:usage).join(' ')} [options]" + def gem_for_database + # %w( mysql oracle postgresql sqlite3 frontbase ibm_db ) + case options[:database] + when "oracle" then "ruby-oci8" + when "postgresql" then "pg" + when "sqlite3" then "sqlite3-ruby" + when "frontbase" then "ruby-frontbase" + else options[:database] + end + end + + def require_for_database + case options[:database] + when "sqlite3" then "sqlite3" + end end def mysql_socket diff --git a/railties/lib/generators/rails/app/templates/Gemfile b/railties/lib/generators/rails/app/templates/Gemfile index 2ad3041ab9..f51edc4d2f 100644 --- a/railties/lib/generators/rails/app/templates/Gemfile +++ b/railties/lib/generators/rails/app/templates/Gemfile @@ -18,17 +18,17 @@ gem "rails", "<%= Rails::VERSION::STRING %>" # ActiveRecord requires a database adapter. By default, # Rails has selected sqlite3. <% end -%> -gem "<%= gem_for_database %>" +gem "<%= gem_for_database %>"<% if require_for_database %>, :require => "<%= require_for_database %>"<% end %> <% end -%> ## Bundle the gems you use: # gem "bj" # gem "hpricot", "0.6" -# gem "sqlite3-ruby", :require_as => "sqlite3" -# gem "aws-s3", :require_as => "aws/s3" +# gem "sqlite3-ruby", :require => "sqlite3" +# gem "aws-s3", :require => "aws/s3" ## Bundle gems used only in certain environments: -# gem "rspec", :only => :test -# only :test do +# gem "rspec", :group => :test +# group :test do # gem "webrat" # end diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index 93ef67818d..76579adb26 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -74,6 +74,13 @@ class AppGeneratorTest < Rails::Generators::TestCase def test_config_database_is_added_by_default run_generator assert_file "config/database.yml", /sqlite3/ + assert_file "Gemfile", /^gem "sqlite3-ruby", :require => "sqlite3"$/ + end + + def test_config_another_database + run_generator([destination_root, "-d", "mysql"]) + assert_file "config/database.yml", /mysql/ + assert_file "Gemfile", /^gem "mysql"$/ end def test_config_database_is_not_added_if_skip_activerecord_is_given -- cgit v1.2.3