class SmtpMock::Server
Attributes
command_line_args[R]
deps_handler[R]
pid[RW]
port[RW]
port_checker[R]
process[R]
version[R]
Public Class Methods
new( deps_handler = SmtpMock::Dependency, port_checker = SmtpMock::Server::Port, args_builder = SmtpMock::CommandLineArgsBuilder, process = SmtpMock::Server::Process, **args )
click to toggle source
# File lib/smtp_mock/server.rb, line 7 def initialize( # rubocop:disable Metrics/ParameterLists deps_handler = SmtpMock::Dependency, port_checker = SmtpMock::Server::Port, args_builder = SmtpMock::CommandLineArgsBuilder, process = SmtpMock::Server::Process, **args ) @version = deps_handler.verify_dependencies args[:port] = port_checker.random_free_port unless args.include?(:port) @command_line_args, @port = args_builder.call(**args), args[:port] @deps_handler, @port_checker, @process = deps_handler, port_checker, process run end
Public Instance Methods
active?()
click to toggle source
# File lib/smtp_mock/server.rb, line 21 def active? process_alive? && port_open? end
stop()
click to toggle source
# File lib/smtp_mock/server.rb, line 25 def stop process_kill(SmtpMock::Server::Process::SIGTERM) end
stop!()
click to toggle source
# File lib/smtp_mock/server.rb, line 29 def stop! process_kill(SmtpMock::Server::Process::SIGKILL) end
Private Instance Methods
compose_command()
click to toggle source
# File lib/smtp_mock/server.rb, line 42 def compose_command deps_handler.compose_command(command_line_args) end
port_open?()
click to toggle source
# File lib/smtp_mock/server.rb, line 50 def port_open? port_checker.port_open?(port) end
process_alive?()
click to toggle source
# File lib/smtp_mock/server.rb, line 46 def process_alive? process.alive?(pid) end
process_kill(signal_number)
click to toggle source
# File lib/smtp_mock/server.rb, line 38 def process_kill(signal_number) process.kill(signal_number, pid) end
run()
click to toggle source
# File lib/smtp_mock/server.rb, line 54 def run self.pid = process.create(compose_command) ::Kernel.at_exit { stop! } end