diff options
author | Eric Wong <normalperson@yhbt.net> | 2010-04-30 00:47:28 +0000 |
---|---|---|
committer | Eric Wong <normalperson@yhbt.net> | 2010-04-30 00:47:28 +0000 |
commit | 87b792445e5e38291fc50b6c3b825a63e9adf130 (patch) | |
tree | bf2ffe16b1818ee94a62834f28a2acca71ae8d70 | |
parent | 83d2170442144a1b2f623b32a1291befaf59c968 (diff) | |
download | unicorn-87b792445e5e38291fc50b6c3b825a63e9adf130.tar.gz |
This is useful as a :listeners argument when setting up Raindrops::Middleware (http://raindrops.bogomips.org/), as it can be done automatically.
-rw-r--r-- | lib/unicorn.rb | 7 | ||||
-rw-r--r-- | lib/unicorn/socket_helper.rb | 2 | ||||
-rw-r--r-- | test/unit/test_server.rb | 4 |
3 files changed, 13 insertions, 0 deletions
diff --git a/lib/unicorn.rb b/lib/unicorn.rb index 72cda10..14e0e52 100644 --- a/lib/unicorn.rb +++ b/lib/unicorn.rb @@ -78,6 +78,13 @@ module Unicorn end end end + + # returns an array of strings representing TCP listen socket addresses + # and Unix domain socket paths. This is useful for use with + # Raindrops::Middleware under Linux: http://raindrops.bogomips.org/ + def listener_names + HttpServer::LISTENERS.map { |io| SocketHelper.sock_name(io) } + end end # This is the process manager of Unicorn. This manages worker diff --git a/lib/unicorn/socket_helper.rb b/lib/unicorn/socket_helper.rb index 09085e5..9a4266d 100644 --- a/lib/unicorn/socket_helper.rb +++ b/lib/unicorn/socket_helper.rb @@ -136,6 +136,8 @@ module Unicorn end end + module_function :sock_name + # casts a given Socket to be a TCPServer or UNIXServer def server_cast(sock) begin diff --git a/test/unit/test_server.rb b/test/unit/test_server.rb index 36333a0..41d3e02 100644 --- a/test/unit/test_server.rb +++ b/test/unit/test_server.rb @@ -283,5 +283,9 @@ class WebServerTest < Test::Unit::TestCase } end + def test_listener_names + assert_equal [ "127.0.0.1:#@port" ], Unicorn.listener_names + end + end |