Sha256: 0fad631b410e2ae4bfe70d42cbb2a864c20599f93b43a272842a2e4abede2222

Contents?: true

Size: 698 Bytes

Versions: 3

Compression:

Stored size: 698 Bytes

Contents

# frozen_string_literal: true

module Del
  class SocketMessage
    def initialize(shell, socket_file:)
      @shell = shell
      @socket_file = socket_file
    end

    def deliver(payload)
      socket.puts(message_for(payload))
    rescue EOFError => error
      @shell.say error.message, :red
    rescue Errno::ECONNREFUSED => error
      @shell.say error.message, :red
      @shell.say 'You must start the del server first.', :yellow
    end

    def listen
      socket.readline
    end

    def close
      socket&.close
    end

    private

    def message_for(payload)
      JSON.generate(payload)
    end

    def socket
      @socket ||= UNIXSocket.new(@socket_file)
    end
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
del-0.1.19 lib/del/socket_message.rb
del-0.1.18 lib/del/socket_message.rb
del-0.1.17 lib/del/socket_message.rb