class ServiceController

Contains the commands to tell the service what to do. All of the command line parsing and such is in a /bin/ that I haven't decided what to name yet.

Constants

SERVER

Attributes

port[R]

Public Class Methods

new(port) click to toggle source
# File lib/doppelserver/service_controller.rb, line 16
def initialize(port)
  @port = port
end

Public Instance Methods

get() click to toggle source
# File lib/doppelserver/service_controller.rb, line 59
def get
  response = Faraday.get "#{SERVER}:#{@port}/control/data"
  response.body
end
restart() click to toggle source

rubocop:enable Lint/HandleExceptions

# File lib/doppelserver/service_controller.rb, line 47
def restart
  stop
  start
end
running?() click to toggle source
# File lib/doppelserver/service_controller.rb, line 52
def running?
  response = Faraday.get "#{SERVER}:#{@port}/control"
  JSON.parse(response.body)['status'] == 'running'
rescue Faraday::ConnectionFailed
  false
end
serve() click to toggle source
# File lib/doppelserver/service_controller.rb, line 31
def serve
  system "title doppelserver - port #{@port}" if ENV['OS'] == 'Windows_NT'
  server = Doppelserver::BaseServer
  server.port = @port
  server.run!
end
set(data) click to toggle source
# File lib/doppelserver/service_controller.rb, line 64
def set(data)
  Faraday.post "#{SERVER}:#{@port}/control/data", data
end
start() click to toggle source
# File lib/doppelserver/service_controller.rb, line 20
def start
  command = "ruby #{__FILE__} server #{@port}"
  command = if ENV['OS'] == 'Windows_NT'
              "start \"doppelserver\" cmd /c #{command}"
            else
              "nohup #{command} &"
            end
  system command
  sleep 0.1 until running?
end
stop() click to toggle source

rubocop:disable Lint/HandleExceptions

# File lib/doppelserver/service_controller.rb, line 39
def stop
  return unless running?
  Faraday.delete "#{SERVER}:#{@port}/control"
rescue Faraday::ConnectionFailed
  # return 0
end