Class: AAMVA::Standard

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/aamva/standard.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(year) ⇒ Standard

Returns a new instance of Standard.



11
12
13
# File 'lib/aamva/standard.rb', line 11

def initialize(year)
  @spec = YAML.load_file(File.expand_path("../../../lib/aamva/data/info/#{year}.yml", __FILE__))
end

Instance Attribute Details

#specObject (readonly)

Returns the value of attribute spec.



7
8
9
# File 'lib/aamva/standard.rb', line 7

def spec
  @spec
end

Instance Method Details

#data_element(data_element) ⇒ Object



39
40
41
# File 'lib/aamva/standard.rb', line 39

def data_element(data_element)
  @spec['data_elements'][data_element.to_s]
end

#factory(field) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/aamva/standard.rb', line 17

def factory(field)
  if data_element?(field)
    {
      :type => data_element(field)&.dig("factory", "type"),
      :options => data_element(field)&.dig("factory", "options").to_h
    }
  elsif header_field?(field)
    {
      :type => header(field)&.dig("factory", "type"),
      :options => header(field)&.dig("factory", "options").to_h
    }
  end
end

#header(field) ⇒ Object



31
32
33
# File 'lib/aamva/standard.rb', line 31

def header(field)
  @spec['header'][field.to_s]
end

#required_data_elementsObject



35
36
37
# File 'lib/aamva/standard.rb', line 35

def required_data_elements
  @spec['data_elements'].reject { |de| de['required'] }.keys
end