class RuboCop::Daemon::Server
Attributes
verbose[R]
Public Class Methods
new(verbose)
click to toggle source
# File lib/rubocop/daemon/server.rb, line 16 def initialize(verbose) @verbose = verbose end
token()
click to toggle source
# File lib/rubocop/daemon/server.rb, line 12 def self.token @token ||= SecureRandom.hex(4) end
Public Instance Methods
start(port)
click to toggle source
# File lib/rubocop/daemon/server.rb, line 24 def start(port) require 'rubocop' start_server(port) Cache.write_port_and_token_files(port: @server.addr[1], token: token) Process.daemon(true) unless verbose Cache.write_pid_file do read_socket(@server.accept) until @server.closed? end end
token()
click to toggle source
# File lib/rubocop/daemon/server.rb, line 20 def token self.class.token end
Private Instance Methods
read_socket(socket)
click to toggle source
# File lib/rubocop/daemon/server.rb, line 41 def read_socket(socket) SocketReader.new(socket, verbose).read! rescue InvalidTokenError socket.puts 'token is not valid.' rescue ServerStopRequest @server.close rescue UnknownServerCommandError => e socket.puts e.message rescue Errno::EPIPE => e p e if verbose rescue StandardError => e socket.puts e.full_message ensure socket.close end
start_server(port)
click to toggle source
# File lib/rubocop/daemon/server.rb, line 36 def start_server(port) @server = TCPServer.open('127.0.0.1', port) puts "Server listen on port #{@server.addr[1]}" if verbose end