class AAMVA::Generator
Attributes
standard[R]
Public Class Methods
new(standard)
click to toggle source
# File lib/aamva/generator.rb, line 7 def initialize(standard) @standard = standard end
Public Instance Methods
data()
click to toggle source
# File lib/aamva/generator.rb, line 11 def data @data ||= Data.new( header: header, subfile_designators: subfile_designators, subfiles: subfiles ) end
Private Instance Methods
header()
click to toggle source
# File lib/aamva/generator.rb, line 21 def header @header ||= Header.new( issuer_identification_number: issuer_identification_number, jurisdiction_version_number: jurisdiction_version_number, number_of_entries: subfiles.size ) end
method_missing(name, *args)
click to toggle source
Calls superclass method
# File lib/aamva/generator.rb, line 63 def method_missing(name, *args) if factory = @standard.factory(name) Factory.build(factory[:type], factory[:options]) else super end end
subfile_designators()
click to toggle source
# File lib/aamva/generator.rb, line 29 def subfile_designators @subfile_designators ||= subfiles.map do |_, subfile| length = Calculator.subfile_length( type: subfile.type, data_elements: subfile.data_elements, data_element_separator: @standard["data_element_separator"], segment_terminator: @standard["segment_terminator"] ) offset = Calculator.subfile_offset SubfileDesignator.new( type: subfile.type, length: length, offset: offset ) end end
subfiles()
click to toggle source
# File lib/aamva/generator.rb, line 48 def subfiles @subfiles ||= begin data_elements = Hash[@standard.required_data_elements.map do |type| [type.upcase, send(type)] end] { "DL" => Subfile.new( type: "DL", data_elements: data_elements ) } end end