class RuboCop::Server::ClientCommand::Exec

This class is a client command to execute server process. @api private

Public Instance Methods

run() click to toggle source
# File lib/rubocop/server/client_command/exec.rb, line 18
def run
  ensure_server!
  Cache.status_path.delete if Cache.status_path.file?
  send_request(
    command: 'exec',
    args: ARGV.dup,
    body: $stdin.tty? ? '' : $stdin.read
  )
  warn stderr unless stderr.empty?
  status
end

Private Instance Methods

ensure_server!() click to toggle source
# File lib/rubocop/server/client_command/exec.rb, line 32
def ensure_server!
  if incompatible_version?
    puts 'RuboCop version incompatibility found, RuboCop server restarting...'
    ClientCommand::Stop.new.run
  elsif check_running_server
    return
  end

  ClientCommand::Start.new.run
end
incompatible_version?() click to toggle source
# File lib/rubocop/server/client_command/exec.rb, line 43
def incompatible_version?
  RuboCop::Version::STRING != Cache.version_path.read
end
status() click to toggle source
# File lib/rubocop/server/client_command/exec.rb, line 51
def status
  unless Cache.status_path.file?
    raise "RuboCop server: Could not find status file at: #{Cache.status_path}"
  end

  status = Cache.status_path.read
  raise "RuboCop server: '#{status}' is not a valid status!" if (status =~ /^\d+$/).nil?

  status.to_i
end
stderr() click to toggle source
# File lib/rubocop/server/client_command/exec.rb, line 47
def stderr
  Cache.stderr_path.read
end