summary refs log tree commit
diff options
context:
space:
mode:
authorMax Cantor <max@maxcantor.net>2014-06-27 15:44:16 -0400
committerJames Tucker <jftucker@gmail.com>2014-07-13 16:17:41 -0700
commit52a80a79e27d171af3ab7e604f9bc211bc9e3e80 (patch)
tree897393d174eea63764427e8165ab576b6035323e
parent7d20fa6c1ea894937d2326bfec0549cf53c95f21 (diff)
downloadrack-52a80a79e27d171af3ab7e604f9bc211bc9e3e80.tar.gz
Give @middleware a more semantic name.
Had to put the class method definitions in an eigenclass wrapper
to use the 'alias' keyword sanely. It wouldn't be necessary if
old behavior of the middleware was unsupported, but that would be
too invasive for just a small clarity change.
-rw-r--r--lib/rack/server.rb45
-rw-r--r--test/spec_server.rb10
2 files changed, 32 insertions, 23 deletions
diff --git a/lib/rack/server.rb b/lib/rack/server.rb
index 4e268b04..711071ca 100644
--- a/lib/rack/server.rb
+++ b/lib/rack/server.rb
@@ -205,29 +205,37 @@ module Rack
       @app ||= options[:builder] ? build_app_from_string : build_app_and_options_from_config
     end
 
-    def self.logging_middleware
-      lambda { |server|
-        server.server.name =~ /CGI/ ? nil : [Rack::CommonLogger, $stderr]
-      }
-    end
+    class << self
+      def logging_middleware
+        lambda { |server|
+          server.server.name =~ /CGI/ ? nil : [Rack::CommonLogger, $stderr]
+        }
+      end
 
-    def self.middleware
-      @middleware ||= begin
-        m = Hash.new {|h,k| h[k] = []}
-        m["deployment"].concat [
-          [Rack::ContentLength],
-          [Rack::Chunked],
-          logging_middleware
-        ]
-        m["development"].concat m["deployment"] + [[Rack::ShowExceptions], [Rack::Lint]]
-        m
+      def default_middleware_by_environment
+        @default_middleware_by_environment ||= begin
+          m = Hash.new {|h,k| h[k] = []}
+          m["deployment"].concat [
+            [Rack::ContentLength],
+            [Rack::Chunked],
+            logging_middleware
+          ]
+          m["development"].concat m["deployment"] + [[Rack::ShowExceptions], [Rack::Lint]]
+          m
+        end
       end
+
+      # Aliased for backwards-compatibility
+      alias :middleware :default_middleware_by_environment
     end
 
-    def middleware
-      self.class.middleware
+    def default_middleware_by_environment
+      self.class.default_middleware_by_environment
     end
 
+    # Aliased for backwards-compatibility
+    alias :middleware :default_middleware_by_environment
+
     def start &blk
       if options[:warn]
         $-w = true
@@ -307,7 +315,8 @@ module Rack
       end
 
       def build_app(app)
-        middleware[options[:environment]].reverse_each do |middleware|
+        middlewares = default_middleware_by_environment[options[:environment]]
+        middlewares.reverse_each do |middleware|
           middleware = middleware.call(self) if middleware.respond_to?(:call)
           next unless middleware
           klass, *args = middleware
diff --git a/test/spec_server.rb b/test/spec_server.rb
index 44d4bcbb..59391681 100644
--- a/test/spec_server.rb
+++ b/test/spec_server.rb
@@ -30,14 +30,14 @@ describe Rack::Server do
 
   should "not include Rack::Lint in deployment or none environments" do
     server = Rack::Server.new(:app => 'foo')
-    server.middleware['deployment'].flatten.should.not.include(Rack::Lint)
-    server.middleware['none'].flatten.should.not.include(Rack::Lint)
+    server.default_middleware_by_environment['deployment'].flatten.should.not.include(Rack::Lint)
+    server.default_middleware_by_environment['none'].flatten.should.not.include(Rack::Lint)
   end
 
   should "not include Rack::ShowExceptions in deployment or none environments" do
     server = Rack::Server.new(:app => 'foo')
-    server.middleware['deployment'].flatten.should.not.include(Rack::ShowExceptions)
-    server.middleware['none'].flatten.should.not.include(Rack::ShowExceptions)
+    server.default_middleware_by_environment['deployment'].flatten.should.not.include(Rack::ShowExceptions)
+    server.default_middleware_by_environment['none'].flatten.should.not.include(Rack::ShowExceptions)
   end
 
   should "support CGI" do
@@ -53,7 +53,7 @@ describe Rack::Server do
 
   should "not force any middleware under the none configuration" do
     server = Rack::Server.new(:app => 'foo')
-    server.middleware['none'].should.be.empty
+    server.default_middleware_by_environment['none'].should.be.empty
   end
 
   should "use a full path to the pidfile" do