Class: SimpleRPC::RPC

Inherits:
Object
  • Object
show all
Defined in:
lib/simple-rpc.rb

Instance Method Summary collapse

Constructor Details

#initialize(client) ⇒ RPC

Returns a new instance of RPC.



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/simple-rpc.rb', line 8

def initialize(client)
  @client = client
  is_child = ENV['CHILD'] ? true : false
  raise "env var 'CHANNEL' not set" unless ENV['CHANNEL']
  parent_channel = ENV['CHANNEL'] + '_parent'
  child_channel = ENV['CHANNEL'] + '_child'
  receive_channel = is_child ? parent_channel : child_channel
  send_channel = is_child ? child_channel : parent_channel
  @socket = LocalSocket.new(receive_channel, send_channel)
  @socket.add_listener(Events::MESSAGE_RECEIVED, method(:message_received))
end

Instance Method Details

#add_listener(event, listener) ⇒ Object



42
43
44
# File 'lib/simple-rpc.rb', line 42

def add_listener(event, listener)
  @socket.add_listener event, listener
end

#connectObject



29
30
31
# File 'lib/simple-rpc.rb', line 29

def connect
  @socket.connect
end

#is_connected?Boolean

Returns:

  • (Boolean)


20
21
22
# File 'lib/simple-rpc.rb', line 20

def is_connected?
  @socket.status == Status::CONNECTED
end

#message_received(json_array_string) ⇒ Object



24
25
26
27
# File 'lib/simple-rpc.rb', line 24

def message_received json_array_string
  array = JSON.parse(json_array_string)
  @client.send(*array)
end

#send_msg(*args) ⇒ Object



33
34
35
36
# File 'lib/simple-rpc.rb', line 33

def send_msg(*args)
  msg = JSON.generate(args)
  @socket.send_msg msg
end

#status_changedObject



38
39
40
# File 'lib/simple-rpc.rb', line 38

def status_changed
  @socket.status_changed
end