It's a simple Ruby gem to get a random TCP port.
First, install it:
$ gem install random-port
Then, use it like this, to reserve a random TCP port:
require 'random-port' port = RandomPort::Pool.new.acquire
Pool guarantees that the port won't be used again. You can put
the port back to the pool after usage:
RandomPort::Pool.new.acquire do |port| # Use the TCP port. It will be returned back # to the pool afterwards. end
You can do it without the block:
pool = RandomPort::Pool.new port = pool.acquire pool.release(port)
You can also use a pre-defined
RandomPort::Pool::SINGLETON.acquire do |port| # Use it here... end
The pool is thread-safe by default.
You can configure it to be
not-thread-safe, using optional
sync argument of the constructor.
How to contribute
$ bundle update $ bundle exec rake
If it's clean and you don't see any error messages, submit your pull request.