class Servent::Event
Attributes
id[R]
retry[R]
type[R]
Public Class Methods
new(event)
click to toggle source
# File lib/servent/event.rb, line 13 def initialize(event) @data = [] StringIO.open(event) do |io| io.each_line { |line| parse_line line } end raise InvalidError.new(event) if empty? end
Public Instance Methods
data()
click to toggle source
# File lib/servent/event.rb, line 22 def data @_data ||= @data.join("\n") end
Private Instance Methods
empty?()
click to toggle source
# File lib/servent/event.rb, line 35 def empty? data.empty? && type.nil? && id.nil? && @retry.nil? end
field_data(data)
click to toggle source
# File lib/servent/event.rb, line 62 def field_data(data) @type = "message" if @type.nil? @data << data end
field_event(data)
click to toggle source
# File lib/servent/event.rb, line 50 def field_event(data) @type = data end
field_id(data)
click to toggle source
# File lib/servent/event.rb, line 54 def field_id(data) @id = data end
field_retry(data)
click to toggle source
# File lib/servent/event.rb, line 58 def field_retry(data) @retry = data.to_i end
parse_line(line)
click to toggle source
# File lib/servent/event.rb, line 28 def parse_line(line) return unless line.include?(Servent::COLON) field_name, data = line.split(":") normalized_data = remove_first_space(data).chomp process_as_field field_name, normalized_data end
process_as_field(field_name, data)
click to toggle source
# File lib/servent/event.rb, line 39 def process_as_field(field_name, data) return unless KNOWN_EVENTS.include?(field_name) field_handler = method("field_#{field_name}") field_handler.call data end
remove_first_space(string)
click to toggle source
# File lib/servent/event.rb, line 45 def remove_first_space(string) return string unless string[0] == "\u{0020}" string[1..(string.length - 1)] end