lib/guard/yard/server.rb in guard-yard-2.1.4 vs lib/guard/yard/server.rb in guard-yard-2.2.0

- old
+ new

@@ -1,56 +1,62 @@ require 'socket' module Guard class Yard + # Responsible for running, verifying and killing the YARD server. class Server - attr_accessor :pid, :port + attr_accessor :pid, :port, :host def initialize(options = {}) @port = options[:port] || '8808' + @host = options[:host] || 'localhost' @stdout = options[:stdout] @stderr = options[:stderr] @cli = options[:cli] end def spawn - UI.info "[Guard::Yard] Starting YARD Documentation Server." + UI.info '[Guard::Yard] Starting YARD Documentation Server.' - command = ["yard server -p #{port}"] + command = ["yard server -p #{port} -b #{host}"] command << @cli if @cli command << "2> #{@stderr}" if @stderr command << "1> #{@stdout}" if @stdout self.pid = Process.spawn(command.join(' ')) end def kill - UI.info "[Guard::Yard] Stopping YARD Documentation Server." + UI.info '[Guard::Yard] Stopping YARD Documentation Server.' begin if pid Process.kill('QUIT', pid) Process.wait2(pid) end rescue Errno::ESRCH, Errno::ECHILD # Process is already dead. + true end true end def verify 5.times do sleep 1 begin - TCPSocket.new('localhost', port.to_i).close + TCPSocket.new(host, port.to_i).close rescue Errno::ECONNREFUSED next end - UI.info "[Guard::Yard] Server successfully started." + UI.info '[Guard::Yard] Server successfully started.' return true end - UI.error "[Guard::Yard] Error starting documentation server." - Notifier.notify "[Guard::Yard] Server NOT started.", - :title => 'yard', :image => :failed + UI.error '[Guard::Yard] Error starting documentation server.' + Notifier.notify( + '[Guard::Yard] Server NOT started.', + title: 'yard', + image: :failed + ) false end end end end