aboutsummaryrefslogtreecommitdiffstats
path: root/railties/lib/rails
diff options
context:
space:
mode:
authorCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-03-06 08:26:09 -0300
committerCarlos Antonio da Silva <carlosantoniodasilva@gmail.com>2012-03-10 10:15:35 -0300
commit6b28c94e20800e6be10b4f7dadff55c3c55f44ce (patch)
tree5adbb92c98081a4fd30c5cf41595d216f59471b4 /railties/lib/rails
parent3e776496d0a85942b65935e69ba63f1d1b5f18fc (diff)
downloadrails-6b28c94e20800e6be10b4f7dadff55c3c55f44ce.tar.gz
rails-6b28c94e20800e6be10b4f7dadff55c3c55f44ce.tar.bz2
rails-6b28c94e20800e6be10b4f7dadff55c3c55f44ce.zip
Add some docs for MiddlewareStackProxy methods and api_only!
[Carlos Antonio da Silva & Santiago Pastorino]
Diffstat (limited to 'railties/lib/rails')
-rw-r--r--railties/lib/rails/configuration.rb41
1 files changed, 39 insertions, 2 deletions
diff --git a/railties/lib/rails/configuration.rb b/railties/lib/rails/configuration.rb
index 0efa21d82c..d3032bb8dd 100644
--- a/railties/lib/rails/configuration.rb
+++ b/railties/lib/rails/configuration.rb
@@ -6,7 +6,44 @@ require 'rails/rack'
module Rails
module Configuration
- class MiddlewareStackProxy #:nodoc:
+ # MiddlewareStackProxy is a proxy for the Rails middleware stack that allows
+ # you to configure middlewares in your application. It works basically as a
+ # command recorder, saving each command to be applied after initialization
+ # over the default middleware stack, so you can add, swap, or remove any
+ # middleware in Rails.
+ #
+ # You can add your own middlewares by using the +config.middleware.use+ method:
+ #
+ # config.middleware.use Magical::Unicorns
+ #
+ # This will put the +Magical::Unicorns+ middleware on the end of the stack.
+ # You can use +insert_before+ if you wish to add a middleware before another:
+ #
+ # config.middleware.insert_before ActionDispatch::Head, Magical::Unicorns
+ #
+ # There's also +insert_after+ which will insert a middleware after another:
+ #
+ # config.middleware.insert_after ActionDispatch::Head, Magical::Unicorns
+ #
+ # Middlewares can also be completely swapped out and replaced with others:
+ #
+ # config.middleware.swap ActionDispatch::BestStandardsSupport, Magical::Unicorns
+ #
+ # And finally they can also be removed from the stack completely:
+ #
+ # config.middleware.delete ActionDispatch::BestStandardsSupport
+ #
+ # In addition to these methods to handle the stack, if your application is
+ # going to be used as an API endpoint only, the middleware stack can be
+ # configured like this:
+ #
+ # config.middleware.api_only!
+ #
+ # By doing this, Rails will create a smaller middleware stack, by not adding
+ # some middlewares that are usually useful for browser access only, such as
+ # Cookies, Session and Flash, BestStandardsSupport, and MethodOverride. You
+ # can always add any of them later manually if you want.
+ class MiddlewareStackProxy
def initialize
@operations = []
@api_only = false
@@ -41,7 +78,7 @@ module Rails
@operations << [:delete, args, block]
end
- def merge_into(other)
+ def merge_into(other) #:nodoc:
@operations.each do |operation, args, block|
other.send(operation, *args, &block)
end