Sha256: 214fe665e459fd6aeea4c92c2de054191fe3a1cea68f47cc2fca892d6a0f7dc1

Contents?: true

Size: 584 Bytes

Versions: 5

Compression:

Stored size: 584 Bytes

Contents

require 'socket'

module FireAndForget
  class Client

    class << self
      def run(cmd)
        result = open_connection do |connection|
          connection.send(cmd.dump, 0)
        end
      end

      def open_connection
        connection = result = nil
        begin
          connection = UNIXSocket.open(FireAndForget.socket)
          yield(connection)
          connection.flush
          connection.close_write
          result = connection.read
        ensure
          connection.close if connection rescue nil
        end
        result
      end
    end
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
fire_and_forget-0.3.3 lib/fire_and_forget/client.rb
fire_and_forget-0.3.2 lib/fire_and_forget/client.rb
fire_and_forget-0.3.1 lib/fire_and_forget/client.rb
fire_and_forget-0.3.0 lib/fire_and_forget/client.rb
fire_and_forget-0.2.0 lib/fire_and_forget/client.rb