aboutsummaryrefslogtreecommitdiffstats
path: root/actionpack/lib/action_controller/metal.rb
diff options
context:
space:
mode:
Diffstat (limited to 'actionpack/lib/action_controller/metal.rb')
-rw-r--r--actionpack/lib/action_controller/metal.rb17
1 files changed, 17 insertions, 0 deletions
diff --git a/actionpack/lib/action_controller/metal.rb b/actionpack/lib/action_controller/metal.rb
index 5e0ed201cb..fbc8a9a15e 100644
--- a/actionpack/lib/action_controller/metal.rb
+++ b/actionpack/lib/action_controller/metal.rb
@@ -1,4 +1,13 @@
require 'active_support/core_ext/class/attribute'
+require 'active_support/ordered_options'
+
+module ActiveSupport
+ class InheritableOptions < OrderedOptions
+ def initialize(parent)
+ super() { |h,k| parent[k] }
+ end
+ end
+end
module ActionController
# ActionController::Metal provides a way to get a valid Rack application from a controller.
@@ -10,6 +19,14 @@ module ActionController
class Metal < AbstractController::Base
abstract!
+ def self.config
+ @config ||= ActiveSupport::InheritableOptions.new(superclass < Metal ? superclass.config : {})
+ end
+
+ def config
+ self.class.config
+ end
+
# :api: public
attr_internal :params, :env