module Fix::GrammarExtensions::Message

Extends the message component to return the header, body, message type, and checksum from an AST

Public Instance Methods

body() click to toggle source

Returns the FIX message body as a fields array

@return <Array> The message body fields

# File lib/fix/protocol/grammar_extensions/message.rb, line 41
def body
  @fields ||= elements[1].elements.map do |e|
    [ e.elements[0].text_value.to_i, e.elements[2].text_value ]
  end
end
header() click to toggle source

Returns the FIX message header as a fields array

@return <Array> The message header fields

# File lib/fix/protocol/grammar_extensions/message.rb, line 19
def header
  unless @header
    hdr = elements[0].elements
    last_fields = hdr.pop

    @header = hdr.map do |e|
      [ e.elements[0].text_value.to_i, e.elements[2].text_value ]
    end

    last_fields.elements.inject(@header) do |h, e|
      h << [ e.elements[0].text_value.to_i, e.elements[2].text_value ]
    end
  end

  @header
end
msg_type() click to toggle source

Returns the FIX message type code

@return <String> The message type code

# File lib/fix/protocol/grammar_extensions/message.rb, line 52
def msg_type
  header.find { |f| f[0] == 35 }[1]
end