class Procodile::ControlClient
Public Class Methods
new(sock_path, &block)
click to toggle source
# File lib/procodile/control_client.rb, line 7 def initialize(sock_path, &block) @socket = UNIXSocket.new(sock_path) if block_given? begin block.call(self) ensure disconnect end end end
run(sock_path, command, options = {})
click to toggle source
# File lib/procodile/control_client.rb, line 18 def self.run(sock_path, command, options = {}) socket = self.new(sock_path) socket.run(command, options) ensure socket.disconnect rescue nil end
Public Instance Methods
disconnect()
click to toggle source
# File lib/procodile/control_client.rb, line 43 def disconnect @socket.close rescue nil end
run(command, options = {})
click to toggle source
# File lib/procodile/control_client.rb, line 25 def run(command, options = {}) @socket.puts("#{command} #{options.to_json}") if data = @socket.gets code, reply = data.strip.split(/\s+/, 2) if code.to_i == 200 if reply && reply.length > 0 JSON.parse(reply) else true end else raise Error, "Error from control server: #{code} (#{reply.inspect})" end else raise Error ,"Control server disconnected." end end
Private Instance Methods
parse_response(data)
click to toggle source
# File lib/procodile/control_client.rb, line 49 def parse_response(data) code, message = data.split(/\s+/, 2) end