Sha256: ddf1616521823c7a236b7f5027a9ac17e6cdef8b87f5aa1982a2ea5bde4b509b
Contents?: true
Size: 954 Bytes
Versions: 1
Compression:
Stored size: 954 Bytes
Contents
module Karma class Connection def initialize 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| begin response = conn.readline 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.5 | lib/karma/connection.rb |