0.01
No release in over 3 years
Low commit activity in last 3 years
Reserves a random TCP port
2005
2006
2007
2008
2009
2010
2011
2012
2013
2014
2015
2016
2017
2018
2019
2020
2021
2022
 Dependencies

Development

= 0.1.10
= 5.11.3
= 12.3.1
= 4.3.0
= 0.58.1
 Project Readme

DevOps By Rultor.com We recommend RubyMine

Build Status Gem Version Maintainability Yard Docs License

Test Coverage Hits-of-Code

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

The 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 Pool::SINGLETON singleton:

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

Read these guidelines. Make sure you build is green before you contribute your pull request. You will need to have Ruby 2.3+ and Bundler installed. Then:

$ bundle update
$ bundle exec rake

If it's clean and you don't see any error messages, submit your pull request.