class Invoker::IPC::UnixClient
Public Class Methods
send_command(command, message_arguments = {}, &block)
click to toggle source
# File lib/invoker/ipc/unix_client.rb, line 39 def self.send_command(command, message_arguments = {}, &block) new.send_command(command, message_arguments, &block) end
Public Instance Methods
send_and_receive(command, message = {})
click to toggle source
# File lib/invoker/ipc/unix_client.rb, line 16 def send_and_receive(command, message = {}) response = nil message_object = get_message_object(command, message) open_client_socket(false) do |socket| send_json_message(socket, message_object) socket.flush response = Invoker::IPC.message_from_io(socket) end response end
send_and_wait(command, message = {})
click to toggle source
# File lib/invoker/ipc/unix_client.rb, line 27 def send_and_wait(command, message = {}) begin socket = Socket.unix(Invoker::IPC::Server::SOCKET_PATH) rescue abort("Invoker does not seem to be running".color(:red)) end message_object = get_message_object(command, message) send_json_message(socket, message_object) socket.flush socket end
send_command(command, message = {}) { |response_object| ... }
click to toggle source
# File lib/invoker/ipc/unix_client.rb, line 4 def send_command(command, message = {}) message_object = get_message_object(command, message) open_client_socket do |socket| send_json_message(socket, message_object) socket.flush if block_given? response_object = Invoker::IPC.message_from_io(socket) yield response_object end end end
Private Instance Methods
get_message_object(command, message_arguments)
click to toggle source
# File lib/invoker/ipc/unix_client.rb, line 45 def get_message_object(command, message_arguments) Invoker::IPC::Message.const_get(Invoker::IPC.camelize(command)).new(message_arguments) end
open_client_socket(abort_if_not_running = true) { |socket| ... }
click to toggle source
# File lib/invoker/ipc/unix_client.rb, line 49 def open_client_socket(abort_if_not_running = true) Socket.unix(Invoker::IPC::Server::SOCKET_PATH) { |socket| yield socket } rescue abort_if_not_running && abort("Invoker does not seem to be running".color(:red)) end
send_json_message(socket, message_object)
click to toggle source
# File lib/invoker/ipc/unix_client.rb, line 55 def send_json_message(socket, message_object) socket.write(message_object.encoded_message) end