summary refs log tree commit
diff options
context:
space:
mode:
authorIgor Bochkariov <ujifgc@gmail.com>2014-04-09 10:12:07 +0400
committerIgor Bochkariov <ujifgc@gmail.com>2014-07-19 10:38:35 +0400
commit9f0aa9257141f0ee0b5acbbb8b30c751d2e5a377 (patch)
treeb10ff86703ed4e55b2f6381ddf410b369554cd8d
parent9269d22c56762076e3b775ea65ec1d40494d2402 (diff)
downloadrack-9f0aa9257141f0ee0b5acbbb8b30c751d2e5a377.tar.gz
add quiet mode of rack server, rackup --quiet
-rw-r--r--lib/rack/server.rb5
-rw-r--r--test/spec_server.rb5
2 files changed, 9 insertions, 1 deletions
diff --git a/lib/rack/server.rb b/lib/rack/server.rb
index d2f0b954..42afb742 100644
--- a/lib/rack/server.rb
+++ b/lib/rack/server.rb
@@ -30,6 +30,9 @@ module Rack
           opts.on("-w", "--warn", "turn warnings on for your script") {
             options[:warn] = true
           }
+          opts.on("-q", "--quiet", "turn off logging") {
+            options[:quiet] = true
+          }
 
           opts.on("-I", "--include PATH",
                   "specify $LOAD_PATH (may be used more than once)") { |path|
@@ -208,7 +211,7 @@ module Rack
     class << self
       def logging_middleware
         lambda { |server|
-          server.server.name =~ /CGI/ ? nil : [Rack::CommonLogger, $stderr]
+          server.server.name =~ /CGI/ || server.options[:quiet] ? nil : [Rack::CommonLogger, $stderr]
         }
       end
 
diff --git a/test/spec_server.rb b/test/spec_server.rb
index 01b4f562..6692c99e 100644
--- a/test/spec_server.rb
+++ b/test/spec_server.rb
@@ -61,6 +61,11 @@ describe Rack::Server do
     end
   end
 
+  should "be quiet if said so" do
+    server = Rack::Server.new(:app => "FOO", :quiet => true)
+    Rack::Server.logging_middleware.call(server).should.eql(nil)
+  end
+
   should "not force any middleware under the none configuration" do
     server = Rack::Server.new(:app => 'foo')
     server.default_middleware_by_environment['none'].should.be.empty