Sha256: 2e8af05d771fb5725f715b464bc8264c778892df818ca509a50b1aed2c95ee42
Contents?: true
Size: 1008 Bytes
Versions: 1
Compression:
Stored size: 1008 Bytes
Contents
module Karma class Connection def initialize @maxlen = 4096 end def send_and_read(request) unless defined?(@socket) establish_connection! end send(request) read end private def connect begin yield @socket rescue => e establish_connection! retry end end def send(message) message = message.to_json connect do |conn| conn.send("#{message}\r\n", 0) conn.flush end end def read connect do |conn| response = conn.recv(@maxlen) begin OpenStruct.new(JSON.parse(response)) rescue => e return OpenStruct.new({ "success" => false, "response" => e.message }) end end end def establish_connection! @socket = TCPSocket.new( Karma.configuration.host, Karma.configuration.port, connect_timeout: 0.5 ) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
karma-0.1.3 | lib/karma/connection.rb |