heckpsi-lab/em-midori

View on GitHub
lib/midori/eventsource.rb

Summary

Maintainability
A
0 mins
Test Coverage
##
# This class provides methods for EventSource connection instance.
# @attr [Midori::Connection] connection the connection instance of EventMachine
class Midori::EventSource
  attr_accessor :connection

  # Init a EventSource instance with a connection
  # @param [Midori::Connection] connection the connection instance of EventMachine
  def initialize(connection)
    @connection = connection
  end

  # Send data and close the connection
  # @param [String] data data to be sent
  def send(data)
    raise Midori::Exception::EventSourceTypeError unless data.is_a? String
    # TODO: implement envents by standard
    @connection.send_data(data.split("\n").map {|str| "data: #{str}\n"}.join + "\n")
    @connection.close_connection_after_writing
  end
end