lib/multi_process/process/rails.rb in multi_process-1.1.1 vs lib/multi_process/process/rails.rb in multi_process-1.2.0
- old
+ new
@@ -1,5 +1,7 @@
+# frozen_string_literal: true
+
class MultiProcess::Process
# Provides functionality for a process that is a rails server
# process.
#
# Include this module if required.
@@ -10,41 +12,35 @@
module Rails
# Server wrapper given as argument to `server` action.
#
attr_reader :server
- # Port server should be running on.
- #
- # Default will be a free port determined when process is created.
- #
- attr_reader :port
-
def initialize(opts = {})
self.server = opts[:server] if opts[:server]
self.port = opts[:port] if opts[:port]
- super *server_command, opts
+ super(*server_command, opts)
end
def server_command
- ['rails', 'server', server, '--port', port].reject(&:nil?).map(&:to_s)
+ ['rails', 'server', server, '--port', port].compact.map(&:to_s)
end
def server=(server)
@server = server.to_s.empty? ? nil : server.to_s
end
def port=(port)
- @port = port.to_i == 0 ? free_port : port.to_i
+ @port = port.to_i.zero? ? free_port : port.to_i
end
def port
@port ||= free_port
end
def available?
- fail ArgumentError.new "Cannot check availability for port #{port}." if port == 0
+ raise ArgumentError.new "Cannot check availability for port #{port}." if port.zero?
TCPSocket.new('localhost', port).close
true
rescue Errno::ECONNREFUSED, Errno::EHOSTUNREACH
false
@@ -68,9 +64,9 @@
def free_port
socket = Socket.new(:INET, :STREAM, 0)
socket.bind(Addrinfo.tcp('localhost', 0))
socket.local_address.ip_port
ensure
- socket.close if socket
+ socket&.close
end
end
end