Class: SyslogTls::StructuredData

Inherits:
Object
  • Object
show all
Defined in:
lib/syslog_tls/protocol.rb

Overview

Structured data field

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(id) ⇒ StructuredData

Returns a new instance of StructuredData.



86
87
88
89
# File 'lib/syslog_tls/protocol.rb', line 86

def initialize(id)
  @id = id
  @data = {}
end

Instance Attribute Details

#dataObject

Returns the value of attribute data.



84
85
86
# File 'lib/syslog_tls/protocol.rb', line 84

def data
  @data
end

#idObject

Returns the value of attribute id.



84
85
86
# File 'lib/syslog_tls/protocol.rb', line 84

def id
  @id
end

Instance Method Details

#assembleObject

Format data structured data to

id k=“v” …


93
94
95
96
97
98
99
100
101
102
# File 'lib/syslog_tls/protocol.rb', line 93

def assemble
  return NIL_VALUE unless id
  parts = [id]
  data.each do |k, v|
    # Characters ", ] and \ must be escaped to prevent any parsing errors
    v = v.gsub(/(\"|\]|\\)/) { |match| '\\' + match }
    parts << "#{k}=\"#{v}\""
  end
  "[#{parts.join(' ')}]"
end

#to_sObject



104
105
106
# File 'lib/syslog_tls/protocol.rb', line 104

def to_s
  assemble
end