aboutsummaryrefslogtreecommitdiffstats
path: root/railties
diff options
context:
space:
mode:
Diffstat (limited to 'railties')
-rw-r--r--railties/builtin/rails_info/rails/info_controller.rb8
-rw-r--r--railties/lib/rails/application/configuration.rb6
-rw-r--r--railties/lib/rails/configuration.rb7
-rw-r--r--railties/lib/rails/generators.rb1
-rw-r--r--railties/test/application/configuration_test.rb2
-rw-r--r--railties/test/application/generators_test.rb13
-rw-r--r--railties/test/application/middleware_test.rb2
-rw-r--r--railties/test/rails_info_controller_test.rb8
8 files changed, 34 insertions, 13 deletions
diff --git a/railties/builtin/rails_info/rails/info_controller.rb b/railties/builtin/rails_info/rails/info_controller.rb
index 47e87c5bf5..196eeb4a6c 100644
--- a/railties/builtin/rails_info/rails/info_controller.rb
+++ b/railties/builtin/rails_info/rails/info_controller.rb
@@ -1,9 +1,15 @@
class Rails::InfoController < ActionController::Base
def properties
- if consider_all_requests_local || local_request?
+ if consider_all_requests_local? || local_request?
render :inline => Rails::Info.to_html
else
render :text => '<p>For security purposes, this information is only available to local requests.</p>', :status => :forbidden
end
end
+
+ protected
+
+ def consider_all_requests_local?
+ Rails.application.config.consider_all_requests_local
+ end
end
diff --git a/railties/lib/rails/application/configuration.rb b/railties/lib/rails/application/configuration.rb
index 31787b5cc9..d6ad045294 100644
--- a/railties/lib/rails/application/configuration.rb
+++ b/railties/lib/rails/application/configuration.rb
@@ -5,7 +5,7 @@ module Rails
class Configuration < ::Rails::Engine::Configuration
include ::Rails::Configuration::Deprecated
- attr_accessor :cache_classes, :cache_store, :colorize_logging,
+ attr_accessor :allow_concurrency, :cache_classes, :cache_store, :colorize_logging,
:consider_all_requests_local, :dependency_loading,
:filter_parameters, :log_level, :logger, :metals,
:plugins, :preload_frameworks, :reload_engines, :reload_plugins,
@@ -13,11 +13,13 @@ module Rails
def initialize(*)
super
+ @allow_concurrency = false
@colorize_logging = true
@filter_parameters = []
@dependency_loading = true
@serve_static_assets = true
@time_zone = "UTC"
+ @consider_all_requests_local = true
end
def paths
@@ -50,7 +52,7 @@ module Rails
self.preload_frameworks = true
self.cache_classes = true
self.dependency_loading = false
- self.action_controller.allow_concurrency = true if respond_to?(:action_controller)
+ self.allow_concurrency = true
self
end
diff --git a/railties/lib/rails/configuration.rb b/railties/lib/rails/configuration.rb
index 6a4ebe883b..7887a5d25f 100644
--- a/railties/lib/rails/configuration.rb
+++ b/railties/lib/rails/configuration.rb
@@ -8,10 +8,10 @@ module Rails
def middleware
@@default_middleware_stack ||= ActionDispatch::MiddlewareStack.new.tap do |middleware|
middleware.use('::ActionDispatch::Static', lambda { Rails.public_path }, :if => lambda { Rails.application.config.serve_static_assets })
- middleware.use('::Rack::Lock', :if => lambda { !ActionController::Base.allow_concurrency })
+ middleware.use('::Rack::Lock', :if => lambda { !Rails.application.config.allow_concurrency })
middleware.use('::Rack::Runtime')
middleware.use('::Rails::Rack::Logger')
- middleware.use('::ActionDispatch::ShowExceptions', lambda { ActionController::Base.consider_all_requests_local })
+ middleware.use('::ActionDispatch::ShowExceptions', lambda { Rails.application.config.consider_all_requests_local })
middleware.use('::ActionDispatch::Callbacks', lambda { !Rails.application.config.cache_classes })
middleware.use('::ActionDispatch::Cookies')
middleware.use(lambda { ActionController::Base.session_store }, lambda { ActionController::Base.session_options })
@@ -88,11 +88,12 @@ module Rails
end
class Generators #:nodoc:
- attr_accessor :aliases, :options, :colorize_logging
+ attr_accessor :aliases, :options, :fallbacks, :colorize_logging
def initialize
@aliases = Hash.new { |h,k| h[k] = {} }
@options = Hash.new { |h,k| h[k] = {} }
+ @fallbacks = {}
@colorize_logging = true
end
diff --git a/railties/lib/rails/generators.rb b/railties/lib/rails/generators.rb
index 90b513fcb4..8c54014fcb 100644
--- a/railties/lib/rails/generators.rb
+++ b/railties/lib/rails/generators.rb
@@ -67,6 +67,7 @@ module Rails
no_color! unless config.colorize_logging
aliases.deep_merge! config.aliases
options.deep_merge! config.options
+ fallbacks.merge! config.fallbacks
end
def self.aliases #:nodoc:
diff --git a/railties/test/application/configuration_test.rb b/railties/test/application/configuration_test.rb
index 60d644bd59..56f45582c8 100644
--- a/railties/test/application/configuration_test.rb
+++ b/railties/test/application/configuration_test.rb
@@ -93,7 +93,7 @@ module ApplicationTests
RUBY
require "#{app_path}/config/application"
- assert AppTemplate::Application.config.action_controller.allow_concurrency
+ assert AppTemplate::Application.config.allow_concurrency
end
test "the application can be marked as threadsafe when there are no frameworks" do
diff --git a/railties/test/application/generators_test.rb b/railties/test/application/generators_test.rb
index e54edea07c..25fa100275 100644
--- a/railties/test/application/generators_test.rb
+++ b/railties/test/application/generators_test.rb
@@ -30,6 +30,7 @@ module ApplicationTests
assert_equal(true, c.generators.colorize_logging)
assert_equal({}, c.generators.aliases)
assert_equal({}, c.generators.options)
+ assert_equal({}, c.generators.fallbacks)
end
end
@@ -51,11 +52,20 @@ module ApplicationTests
end
end
- test "generators aliases and options on initialization" do
+ test "generators set rails fallbacks" do
+ with_config do |c|
+ c.generators.fallbacks[:shoulda] = :test_unit
+ expected = { :shoulda => :test_unit }
+ assert_equal expected, c.generators.fallbacks
+ end
+ end
+
+ test "generators aliases, options and fallbacks on initialization" do
add_to_config <<-RUBY
config.generators.rails :aliases => { :test_framework => "-w" }
config.generators.orm :datamapper
config.generators.test_framework :rspec
+ config.generators.fallbacks[:shoulda] = :test_unit
RUBY
# Initialize the application
@@ -65,6 +75,7 @@ module ApplicationTests
assert_equal :rspec, Rails::Generators.options[:rails][:test_framework]
assert_equal "-w", Rails::Generators.aliases[:rails][:test_framework]
+ assert_equal :test_unit, Rails::Generators.fallbacks[:shoulda]
end
test "generators no color on initialization" do
diff --git a/railties/test/application/middleware_test.rb b/railties/test/application/middleware_test.rb
index 0b92cdba54..ce9cd510a3 100644
--- a/railties/test/application/middleware_test.rb
+++ b/railties/test/application/middleware_test.rb
@@ -39,7 +39,7 @@ module ApplicationTests
end
test "removes lock if allow concurrency is set" do
- add_to_config "config.action_controller.allow_concurrency = true"
+ add_to_config "config.allow_concurrency = true"
boot!
assert !middleware.include?("Rack::Lock")
end
diff --git a/railties/test/rails_info_controller_test.rb b/railties/test/rails_info_controller_test.rb
index edab27465e..4163fb2c6d 100644
--- a/railties/test/rails_info_controller_test.rb
+++ b/railties/test/rails_info_controller_test.rb
@@ -17,23 +17,23 @@ class InfoControllerTest < ActionController::TestCase
ActionController::Routing::Routes.draw do |map|
match ':controller/:action'
end
- @controller.stubs(:consider_all_requests_local => false, :local_request? => true)
+ @controller.stubs(:consider_all_requests_local? => false, :local_request? => true)
end
test "info controller does not allow remote requests" do
- @controller.stubs(:consider_all_requests_local => false, :local_request? => false)
+ @controller.stubs(:consider_all_requests_local? => false, :local_request? => false)
get :properties
assert_response :forbidden
end
test "info controller renders an error message when request was forbidden" do
- @controller.stubs(:consider_all_requests_local => false, :local_request? => false)
+ @controller.stubs(:consider_all_requests_local? => false, :local_request? => false)
get :properties
assert_select 'p'
end
test "info controller allows requests when all requests are considered local" do
- @controller.stubs(:consider_all_requests_local => true, :local_request? => false)
+ @controller.stubs(:consider_all_requests_local? => true, :local_request? => false)
get :properties
assert_response :success
end