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