lib/rails/generators/app_base.rb in railties-4.0.0.beta1 vs lib/rails/generators/app_base.rb in railties-4.0.0.rc1

- old
+ new

@@ -113,11 +113,15 @@ options[:template] end end def database_gemfile_entry - options[:skip_active_record] ? "" : "gem '#{gem_for_database}'" + options[:skip_active_record] ? "" : + <<-GEMFILE.strip_heredoc.chomp + # Use #{options[:database]} as the database for Active Record + gem '#{gem_for_database}' + GEMFILE end def include_all_railties? !options[:skip_active_record] && !options[:skip_test_unit] && !options[:skip_sprockets] end @@ -129,17 +133,15 @@ def rails_gemfile_entry if options.dev? <<-GEMFILE.strip_heredoc gem 'rails', path: '#{Rails::Generators::RAILS_DEV_PATH}' gem 'arel', github: 'rails/arel' - gem 'activerecord-deprecated_finders', github: 'rails/activerecord-deprecated_finders' GEMFILE elsif options.edge? <<-GEMFILE.strip_heredoc gem 'rails', github: 'rails/rails' gem 'arel', github: 'rails/arel' - gem 'activerecord-deprecated_finders', github: 'rails/activerecord-deprecated_finders' GEMFILE else <<-GEMFILE.strip_heredoc # Bundle edge Rails instead: gem 'rails', github: 'rails/rails' gem 'rails', '#{Rails::VERSION::STRING}' @@ -176,57 +178,77 @@ def assets_gemfile_entry return if options[:skip_sprockets] gemfile = if options.dev? || options.edge? - <<-GEMFILE - # Gems used only for assets and not required - # in production environments by default. - group :assets do - gem 'sprockets-rails', github: 'rails/sprockets-rails' - gem 'sass-rails', github: 'rails/sass-rails' - gem 'coffee-rails', github: 'rails/coffee-rails' + <<-GEMFILE.strip_heredoc + # Use edge version of sprockets-rails + gem 'sprockets-rails', github: 'rails/sprockets-rails' - # See https://github.com/sstephenson/execjs#readme for more supported runtimes - #{javascript_runtime_gemfile_entry} - gem 'uglifier', '>= 1.0.3' - end + # Use SCSS for stylesheets + gem 'sass-rails', github: 'rails/sass-rails' + + # Use Uglifier as compressor for JavaScript assets + gem 'uglifier', '>= 1.3.0' GEMFILE else - <<-GEMFILE - # Gems used only for assets and not required - # in production environments by default. - group :assets do - gem 'sass-rails', '~> 4.0.0.beta1' - gem 'coffee-rails', '~> 4.0.0.beta1' + <<-GEMFILE.strip_heredoc + # Use SCSS for stylesheets + gem 'sass-rails', '~> 4.0.0.rc1' - # See https://github.com/sstephenson/execjs#readme for more supported runtimes - #{javascript_runtime_gemfile_entry} - gem 'uglifier', '>= 1.0.3' - end + # Use Uglifier as compressor for JavaScript assets + gem 'uglifier', '>= 1.3.0' GEMFILE end - gemfile.strip_heredoc.gsub(/^[ \t]*$/, '') + if options[:skip_javascript] + gemfile += <<-GEMFILE + #{coffee_gemfile_entry} + #{javascript_runtime_gemfile_entry} + GEMFILE + end + + gemfile.gsub(/^[ \t]+/, '') end + def coffee_gemfile_entry + if options.dev? || options.edge? + <<-GEMFILE + # Use CoffeeScript for .js.coffee assets and views + gem 'coffee-rails', github: 'rails/coffee-rails' + GEMFILE + else + <<-GEMFILE + # Use CoffeeScript for .js.coffee assets and views + gem 'coffee-rails', '~> 4.0.0' + GEMFILE + end + end + def javascript_gemfile_entry unless options[:skip_javascript] - <<-GEMFILE.strip_heredoc + <<-GEMFILE.gsub(/^[ \t]+/, '') + #{coffee_gemfile_entry} + #{javascript_runtime_gemfile_entry} + # Use #{options[:javascript]} as the JavaScript library gem '#{options[:javascript]}-rails' # Turbolinks makes following links in your web application faster. Read more: https://github.com/rails/turbolinks gem 'turbolinks' GEMFILE end end def javascript_runtime_gemfile_entry - if defined?(JRUBY_VERSION) - "gem 'therubyrhino'\n" + runtime = if defined?(JRUBY_VERSION) + "gem 'therubyrhino'" else - "# gem 'therubyracer', platforms: :ruby\n" + "# gem 'therubyracer', platforms: :ruby" end + <<-GEMFILE + # See https://github.com/sstephenson/execjs#readme for more supported runtimes + #{runtime} + GEMFILE end def bundle_command(command) say_status :run, "bundle #{command}"