Class: LensProtocol::OMA::Type::Trcfmt

Inherits:
Base
  • Object
show all
Defined in:
lib/lens_protocol/oma/type/trcfmt.rb

Class Method Summary collapse

Instance Method Summary collapse

Methods inherited from Base

#initialize

Constructor Details

This class inherits a constructor from LensProtocol::OMA::Type::Base

Class Method Details

.number(values) ⇒ Object



28
29
30
# File 'lib/lens_protocol/oma/type/trcfmt.rb', line 28

def self.number values
  values[0].to_i
end

.side_pos(values) ⇒ Object



24
25
26
# File 'lib/lens_protocol/oma/type/trcfmt.rb', line 24

def self.side_pos values
  values[3] == 'R' ? 0 : 1
end

Instance Method Details

#format(record, message) ⇒ Object



11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/lens_protocol/oma/type/trcfmt.rb', line 11

def format record, message
  Array(record.value).select { |v| v&.any? }.flat_map do |values|
    trcfmt_line = format_line(record.label, values)

    side_pos = Trcfmt.side_pos values
    r_lines = message.value_of('R', [[], []])[side_pos].each_slice(10).map do |group|
      format_line('R', group)
    end

    [trcfmt_line, *r_lines]
  end
end

#parse(line, message) ⇒ Object



5
6
7
8
9
# File 'lib/lens_protocol/oma/type/trcfmt.rb', line 5

def parse line, message
  label, values = label_and_values line
  side_pos = Trcfmt.side_pos values
  message.add_record_side_values(label, side_pos, values).set_context(:last_trcfmt, values)
end