Sha256: 18522d8e94aee0192391f387bad106b1f35eae8a62f3caed33b9a331a967256c
Contents?: true
Size: 978 Bytes
Versions: 1
Compression:
Stored size: 978 Bytes
Contents
module Karma class Connection def initialize @maxlen = 4096 end def send_and_read(request) unless defined?(@socket) establish_connection! end push(request) read end private def connect begin yield @socket rescue => e establish_connection! retry end end def push(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 ) end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
karma-0.1.4 | lib/karma/connection.rb |