Class: AAMVA::Calculator

Inherits:
Object
  • Object
show all
Defined in:
lib/aamva/calculator.rb

Class Method Summary collapse

Class Method Details

.subfile(type:, data_elements:, data_element_separator:, segment_terminator:) ⇒ Object



3
4
5
6
7
8
9
# File 'lib/aamva/calculator.rb', line 3

def self.subfile(type:, data_elements:, data_element_separator:, segment_terminator:)
  joined_pairs = data_elements
    .map { |k, v| "#{k}#{v}" }
    .join(data_element_separator)

  "#{type}#{joined_pairs}#{segment_terminator}"
end

.subfile_length(type:, data_elements:, data_element_separator:, segment_terminator:) ⇒ Object



26
27
28
29
30
31
32
33
# File 'lib/aamva/calculator.rb', line 26

def self.subfile_length(type:, data_elements:, data_element_separator:, segment_terminator:)
  subfile(
    type: type,
    data_elements: data_elements,
    data_element_separator: data_element_separator,
    segment_terminator: segment_terminator
  ).length
end

.subfile_offsetObject



22
23
24
# File 'lib/aamva/calculator.rb', line 22

def self.subfile_offset
  "TODO"
end

.subfiles(subfiles:, data_element_separator:, segment_terminator:) ⇒ Object



11
12
13
14
15
16
17
18
19
20
# File 'lib/aamva/calculator.rb', line 11

def self.subfiles(subfiles:, data_element_separator:, segment_terminator:)
  subfiles.map do |type, subfile|
    Calculator.subfile(
      type: type,
      data_elements: subfile.data_elements,
      data_element_separator: data_element_separator,
      segment_terminator: segment_terminator
    )
  end.join("")
end