Class: Rage::SSE::Message

Inherits:
Struct
  • Object
show all
Defined in:
lib/rage/sse/message.rb

Overview

Represents a single Server-Sent Event. This class allows you to define the id, event, and retry fields for an SSE message.

Instance Attribute Summary collapse

Instance Method Summary collapse

Instance Attribute Details

#dataString, #to_json



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rage/sse/message.rb', line 13

Rage::SSE::Message = Struct.new(:id, :event, :retry, :data, keyword_init: true) do
  def to_s
    data_entry = if !data.is_a?(String)
      "data: #{data.to_json}\n"
    elsif data.include?("\n")
      data.split("\n").map { |d| "data: #{d}\n" }.join
    else
      "data: #{data}\n"
    end

    "#{data_entry}#{"id: #{id}\n" if id}#{"event: #{event}\n" if event}#{"retry: #{self.retry.to_i}\n" if self.retry && self.retry.to_i > 0}\n"
  end
end

#eventString



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rage/sse/message.rb', line 13

Rage::SSE::Message = Struct.new(:id, :event, :retry, :data, keyword_init: true) do
  def to_s
    data_entry = if !data.is_a?(String)
      "data: #{data.to_json}\n"
    elsif data.include?("\n")
      data.split("\n").map { |d| "data: #{d}\n" }.join
    else
      "data: #{data}\n"
    end

    "#{data_entry}#{"id: #{id}\n" if id}#{"event: #{event}\n" if event}#{"retry: #{self.retry.to_i}\n" if self.retry && self.retry.to_i > 0}\n"
  end
end

#idString



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rage/sse/message.rb', line 13

Rage::SSE::Message = Struct.new(:id, :event, :retry, :data, keyword_init: true) do
  def to_s
    data_entry = if !data.is_a?(String)
      "data: #{data.to_json}\n"
    elsif data.include?("\n")
      data.split("\n").map { |d| "data: #{d}\n" }.join
    else
      "data: #{data}\n"
    end

    "#{data_entry}#{"id: #{id}\n" if id}#{"event: #{event}\n" if event}#{"retry: #{self.retry.to_i}\n" if self.retry && self.retry.to_i > 0}\n"
  end
end

#retryInteger



13
14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/rage/sse/message.rb', line 13

Rage::SSE::Message = Struct.new(:id, :event, :retry, :data, keyword_init: true) do
  def to_s
    data_entry = if !data.is_a?(String)
      "data: #{data.to_json}\n"
    elsif data.include?("\n")
      data.split("\n").map { |d| "data: #{d}\n" }.join
    else
      "data: #{data}\n"
    end

    "#{data_entry}#{"id: #{id}\n" if id}#{"event: #{event}\n" if event}#{"retry: #{self.retry.to_i}\n" if self.retry && self.retry.to_i > 0}\n"
  end
end

Instance Method Details

#to_sObject



14
15
16
17
18
19
20
21
22
23
24
# File 'lib/rage/sse/message.rb', line 14

def to_s
  data_entry = if !data.is_a?(String)
    "data: #{data.to_json}\n"
  elsif data.include?("\n")
    data.split("\n").map { |d| "data: #{d}\n" }.join
  else
    "data: #{data}\n"
  end

  "#{data_entry}#{"id: #{id}\n" if id}#{"event: #{event}\n" if event}#{"retry: #{self.retry.to_i}\n" if self.retry && self.retry.to_i > 0}\n"
end