Sha256: 1d82b7d7c4a97814ad116f93a65b1c77ec38b94aea80a9b65fd43cc7f347b3d6

Contents?: true

Size: 600 Bytes

Versions: 19

Compression:

Stored size: 600 Bytes

Contents

require 'socket'
require 'timeout'

class Eye::Client
  attr_reader :socket_path

  def initialize(socket_path)
    @socket_path = socket_path
  end

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

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

  rescue Timeout::Error, EOFError
    :timeouted
  end

  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

end

Version data entries

19 entries across 19 versions & 3 rubygems

Version Path
eye-0.7.pre lib/eye/client.rb
eye-0.6.4 lib/eye/client.rb
eye-0.6.3 lib/eye/client.rb
eye-0.6.2 lib/eye/client.rb
eye-0.6.2.pre lib/eye/client.rb
ace-eye-0.6.5 lib/eye/client.rb
ace-eye-0.6.4 lib/eye/client.rb
eye-0.6.1 lib/eye/client.rb
ace-eye-0.6.3 lib/eye/client.rb
ace-eye-0.6.2 lib/eye/client.rb
ace-eye-0.6.1 lib/eye/client.rb
eye-0.6 lib/eye/client.rb
reel-eye-0.5.2.1 lib/eye/client.rb
reel-eye-0.5.2 lib/eye/client.rb
eye-0.5.2 lib/eye/client.rb
reel-eye-0.5.1 lib/eye/client.rb
eye-0.5.1 lib/eye/client.rb
reel-eye-0.5 lib/eye/client.rb
eye-0.5 lib/eye/client.rb