diff --git a/railties/lib/rails/application.rb b/railties/lib/rails/application.rb index 5419b46f19cd49fcc62762e0ec7cff83b4ac18f7..88f10727c5e62e4ff0b8ab009737156fc3246100 100644 --- a/railties/lib/rails/application.rb +++ b/railties/lib/rails/application.rb @@ -273,7 +273,9 @@ def call(env) # For each framework, search for instrument file with Notifications hooks. # initializer :load_notifications_hooks do - config.frameworks.each do |framework| + frameworks = [ :active_record, :action_controller, :action_view, + :action_mailer, :active_resource ] + frameworks.each do |framework| begin require "#{framework}/notifications" rescue LoadError => e diff --git a/railties/lib/rails/configuration.rb b/railties/lib/rails/configuration.rb index 086f67a41986a1cf06840262558c6048352d4ab2..12bf076f61d9d565cf6e6afc767d325132d503d8 100644 --- a/railties/lib/rails/configuration.rb +++ b/railties/lib/rails/configuration.rb @@ -59,7 +59,7 @@ class Configuration < Plugin::Configuration attr_writer :cache_store, :controller_paths, :database_configuration_file, :eager_load_paths, - :frameworks, :framework_root_path, :i18n, :load_paths, + :i18n, :load_paths, :log_level, :log_path, :paths, :routes_configuration_file, :view_path @@ -134,21 +134,6 @@ def threadsafe! self end - def framework_paths - paths = %w(railties railties/lib activesupport/lib) - paths << 'actionpack/lib' if frameworks.include?(:action_controller) || frameworks.include?(:action_view) - - [:active_record, :action_mailer, :active_resource, :action_web_service].each do |framework| - paths << "#{framework.to_s.gsub('_', '')}/lib" if frameworks.include?(framework) - end - - paths.map { |dir| "#{framework_root_path}/#{dir}" }.select { |dir| File.directory?(dir) } - end - - def framework_root_path - defined?(::RAILS_FRAMEWORK_ROOT) ? ::RAILS_FRAMEWORK_ROOT : "#{root}/vendor/rails" - end - # Loads and returns the contents of the #database_configuration_file. The # contents of the file are processed via ERB before being sent through # YAML::load. @@ -239,10 +224,6 @@ def log_level @log_level ||= RAILS_ENV == 'production' ? :info : :debug end - def frameworks - @frameworks ||= [ :active_record, :action_controller, :action_view, :action_mailer, :active_resource ] - end - def i18n @i18n ||= begin i18n = ActiveSupport::OrderedOptions.new diff --git a/railties/lib/rails/generators/rails/app/templates/config/application.rb b/railties/lib/rails/generators/rails/app/templates/config/application.rb index 15dc553e53d756566cc52395a7fd38c53b8acfe1..ec0729db044b4ed53bf7abd0dc258b714639ef15 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/application.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/application.rb @@ -13,16 +13,8 @@ class Application < Rails::Application # :all can be used as a placeholder for all plugins not explicitly named # config.plugins = [ :exception_notification, :ssl_requirement, :all ] - # Skip frameworks you're not going to use. To use Rails without a database, - # you must remove the Active Record framework. -<% if options[:skip_activerecord] -%> - config.frameworks -= [ :active_record ] -<% else -%> - # config.frameworks -= [ :active_record, :active_resource, :action_mailer ] - # Activate observers that should always be running # config.active_record.observers = :cacher, :garbage_collector, :forum_observer -<% end -%> # Set Time.zone default to the specified zone and make Active Record auto-convert to this zone. # Run "rake -D time" for a list of tasks for finding time zone names. diff --git a/railties/lib/rails/generators/rails/app/templates/config/boot.rb b/railties/lib/rails/generators/rails/app/templates/config/boot.rb index 5aa49ca5e64a5fad27b1216375d447d04ef96ef3..221421855c2b89c06500648f9d80f0cafa60aa4d 100644 --- a/railties/lib/rails/generators/rails/app/templates/config/boot.rb +++ b/railties/lib/rails/generators/rails/app/templates/config/boot.rb @@ -14,3 +14,12 @@ end require 'rails' +# To skip frameworks you're not going to use, remove require "rails" and +# list the frameworks that you are going to use. +# +# require "active_model/rails" +# require "active_record/rails" +# require "action_controller/rails" +# require "action_view/rails" +# require "action_mailer/rails" +# require "active_resource/rails" \ No newline at end of file diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb index ece41f9de813452219ac8a286005692b0f97e907..a7df1e09ab2f06ec26ae5b6674a427a0a1ba1104 100644 --- a/railties/test/application/configuration_test.rb +++ b/railties/test/application/configuration_test.rb @@ -75,10 +75,11 @@ def setup test "the application can be marked as threadsafe when there are no frameworks" do FileUtils.rm_rf("#{app_path}/config/environments") add_to_config <<-RUBY - config.frameworks = [] config.threadsafe! RUBY + use_frameworks [] + assert_nothing_raised do require "#{app_path}/config/application" end diff --git a/railties/test/application/initializer_test.rb b/railties/test/application/initializer_test.rb index 42fc416faa1cf549a542f785ea58df89f3365098..e03f9ffb007d3aea7ef7b06b8527b77e5bd7265f 100644 --- a/railties/test/application/initializer_test.rb +++ b/railties/test/application/initializer_test.rb @@ -7,7 +7,6 @@ class InitializerTest < Test::Unit::TestCase def setup build_app boot_rails - require "rails" end test "initializing an application adds the application paths to the load path" do @@ -51,8 +50,9 @@ module Zoo::ReptileHouse ; end assert_nothing_raised NameError do add_to_config <<-RUBY config.root = "#{app_path}" - config.frameworks = [] RUBY + + use_frameworks [] require "#{app_path}/config/environment" end end diff --git a/railties/test/generators/app_generator_test.rb b/railties/test/generators/app_generator_test.rb index 567555fdc5316284293041ae993e64b2aeeba4a9..2cba42551e501dce10daad386970ad37b6e9a62d 100644 --- a/railties/test/generators/app_generator_test.rb +++ b/railties/test/generators/app_generator_test.rb @@ -63,10 +63,11 @@ def test_config_database_is_not_added_if_skip_activerecord_is_given assert_no_file "config/database.yml" end - def test_activerecord_is_removed_from_frameworks_if_skip_activerecord_is_given - run_generator ["--skip-activerecord"] - assert_file "config/application.rb", /config\.frameworks \-= \[ :active_record \]/ - end + # TODO: Bring this back using requires + # def test_activerecord_is_removed_from_frameworks_if_skip_activerecord_is_given + # run_generator ["--skip-activerecord"] + # assert_file "config/application.rb", /config\.frameworks \-= \[ :active_record \]/ + # end def test_prototype_and_test_unit_are_added_by_default run_generator diff --git a/railties/test/initializer/path_test.rb b/railties/test/initializer/path_test.rb index 3bbf9617a0b060045c30828fe61de019828dd8f3..73d1b1a125702a008ca68d741d9d6d6ca7bc365b 100644 --- a/railties/test/initializer/path_test.rb +++ b/railties/test/initializer/path_test.rb @@ -7,14 +7,14 @@ class PathTest < Test::Unit::TestCase def setup build_app boot_rails - require "rails" add_to_config <<-RUBY config.root = "#{app_path}" - config.frameworks = [:action_controller, :action_view, :action_mailer, :active_record] config.after_initialize do ActionController::Base.session_store = nil end RUBY + use_frameworks [:action_controller, :action_view, :action_mailer, :active_record] + require "rails" require "#{app_path}/config/environment" @paths = Rails.application.config.paths end