Class: Eye::Client

Inherits:
Object show all
Defined in:
lib/eye/client.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(socket_path) ⇒ Client

Returns a new instance of Client.



7
8
9
# File 'lib/eye/client.rb', line 7

def initialize(socket_path)
  @socket_path = socket_path
end

Instance Attribute Details

#socket_pathObject (readonly)

Returns the value of attribute socket_path.



5
6
7
# File 'lib/eye/client.rb', line 5

def socket_path
  @socket_path
end

Instance Method Details

#attempt_command(pack) ⇒ Object



15
16
17
18
19
20
21
22
# File 'lib/eye/client.rb', line 15

def attempt_command(pack)
  Timeout.timeout(Eye::Local.client_timeout) do
    return send_request(pack)
  end

rescue Timeout::Error, EOFError
  :timeouted
end

#command(cmd, *args) ⇒ Object



11
12
13
# File 'lib/eye/client.rb', line 11

def command(cmd, *args)
  attempt_command(Marshal.dump([cmd, *args]))
end

#send_request(pack) ⇒ Object



24
25
26
27
28
29
30
# File 'lib/eye/client.rb', line 24

def send_request(pack)
  UNIXSocket.open(@socket_path) do |socket|
    socket.write(pack)
    data = socket.read
    res = Marshal.load(data) rescue :corrupted_data
  end
end