class AAMVA::Factory
Public Class Methods
build(type, options = {})
click to toggle source
# File lib/aamva/factory.rb, line 5 def self.build(type, options = {}) if respond_to?(type) send(type, options) else raise "Unsupported Factory Type: #{type}" end end
Private Class Methods
city(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 94 def self.city(options = {}) defaults = { 'value' => Faker::Address.city } string(defaults.merge(options)) end
customer_id_number(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 64 def self.customer_id_number(options = {}) defaults = { 'value' => random_string(25) } string(defaults.merge(options)) end
date(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 86 def self.date(options = {}) Faker::Date.backward.strftime(DATE_FORMATS[:usa]) end
endorsement_codes(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 90 def self.endorsement_codes(options = {}) UPPER_ALPHA_CHARACTERS.sample(5).join('') end
enum(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 15 def self.enum(options = {}) options.fetch("values").sample end
first_name(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 78 def self.first_name(options = {}) defaults = { 'value' => Faker::Name.first_name } string(defaults.merge(options)) end
height(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 72 def self.height(options = {}) height = ('000'..'999').to_a.sample "#{height} #{LENGTH_UNITS.first}" end
last_name(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 48 def self.last_name(options = {}) defaults = { 'value' => Faker::Name.last_name } string(defaults.merge(options)) end
postal_code(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 56 def self.postal_code(options = {}) defaults = { 'value' => random_string(11) } string(defaults.merge(options)) end
random_string(length)
click to toggle source
# File lib/aamva/factory.rb, line 116 def self.random_string(length) chars = ('A'..'Z').to_a + ('0'..'9').to_a chars.sample(length).join('') end
range(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 19 def self.range(options = {}) (options.fetch('start')..options.fetch('end')).to_a.sample end
restriction_codes(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 32 def self.restriction_codes(options = {}) defaults = { 'value' => UPPER_ALPHA_CHARACTERS.sample(12).join('') } string(defaults.merge(options)) end
state(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 102 def self.state(options = {}) defaults = { 'value' => Faker::Address.state_abbr } string(defaults.merge(options)) end
street_address(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 40 def self.street_address(options = {}) defaults = { 'value' => Faker::Address.street_address } string(defaults.merge(options)) end
string(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 23 def self.string(options = {}) value = options.fetch('value') do random_string(options['truncate']['length']) end value = Utils.truncate(value, options['truncate']) if options.key?('truncate') value end
vehicle_class(options = {})
click to toggle source
# File lib/aamva/factory.rb, line 110 def self.vehicle_class(options = {}) chars = ('A'..'Z').to_a + ('0'..'9').to_a chars.sample(6).join('') end