class F4R::Record

Record is where each data message gets stored including meta data.

Attributes

fields[R]

Where all fields for the specific record get stored

@example

{
  field_1: {
    value: value,
    base_type: base_type,
    message_name: 'file_id',
    message_number: 0,
    properties: {...}, # copy of global message's field
  },
  field_2: {
    value: value,
    base_type: base_type,
    message_name: 'file_id',
    message_number: 0,
    properties: {...}, # copy of global message's field
  },
 ...
}

@return [Hash] current message fields.

Public Class Methods

new(message_name) click to toggle source
# File lib/f4r.rb, line 1311
def initialize(message_name)
  @message_name = message_name
  @fields = {}
end

Public Instance Methods

message() click to toggle source

Global message

@return [Hash] copy of associated global message.

# File lib/f4r.rb, line 1321
def message
  @message ||= GlobalFit.messages.find { |m| m[:name] == @message_name }
end
set_field_value(definition, value) click to toggle source

Sets the value attribute for the passed field.

@param [RecordField] definition @param [String, Integer] value

# File lib/f4r.rb, line 1331
def set_field_value(definition, value)
  if fields[definition.name]
    @fields[definition.name][:value] = value
    @fields[definition.name][:definition] = definition
  else
    @fields[definition.name] = {
      value: value,
      base_type: definition.base_type_definition,
      message_name: definition.global_message[:name],
      message_number: definition.global_message[:number],
      definition: definition,
      properties: definition.global_message_field,
    }
  end
end