class AAMVA::Encoder
Attributes
data[R]
standard[R]
Public Class Methods
new(standard:, data:)
click to toggle source
# File lib/aamva/encoder.rb, line 5 def initialize(standard:, data:) @standard = standard @data = data end
Public Instance Methods
pdf417()
click to toggle source
# File lib/aamva/encoder.rb, line 14 def pdf417 @pdf417 ||= begin require "pdf417" PDF417.new(string) end end
png()
click to toggle source
# File lib/aamva/encoder.rb, line 22 def png @png ||= pdf417.to_chunky_png end
string()
click to toggle source
# File lib/aamva/encoder.rb, line 10 def string "#{header}#{subfile_designators}#{subfiles}" end
Private Instance Methods
header()
click to toggle source
# File lib/aamva/encoder.rb, line 28 def header @header ||= begin [ standard.spec.fetch("compliance_indicator"), standard.spec.fetch("data_element_separator"), standard.spec.fetch("record_separator"), standard.spec.fetch("segment_terminator"), standard.spec.fetch("file_type"), data.header.issuer_identification_number, standard.spec.fetch("aamva_version_number"), data.header.jurisdiction_version_number, data.header.number_of_entries ].join("") end end
subfile_designators()
click to toggle source
# File lib/aamva/encoder.rb, line 45 def subfile_designators @subfile_designators ||= data.subfile_designators.map do |designator| "#{designator.type}#{designator.offset}#{designator.length}" end.join("") end
subfiles()
click to toggle source
# File lib/aamva/encoder.rb, line 51 def subfiles @subfiles ||= Calculator.subfiles( subfiles: data.subfiles, data_element_separator: standard.spec.fetch("data_element_separator"), segment_terminator: standard.spec.fetch("segment_terminator") ) end