Class: Synthra::Types::Travel::FlightNumber
- Defined in:
- lib/synthra/types/travel/travel.rb
Overview
FlightNumber type
Constant Summary collapse
- AIRLINE_CODES =
Common IATA airline codes
Two-letter codes for major airlines.
["AA", "UA", "DL", "SW", "LH", "BA", "AF", "EK", "SQ", "JL"].freeze
Instance Method Summary collapse
- #generate_edge(rng, context, args) ⇒ Object
- #generate_invalid(rng, context, args) ⇒ Object
-
#generate_random(rng, context, args) ⇒ String
Generate random flight number.
Instance Method Details
#generate_edge(rng, context, args) ⇒ Object
102 103 104 |
# File 'lib/synthra/types/travel/travel.rb', line 102 def generate_edge(rng, context, args) ["AA000", "AA9999", "ZZ000"].sample(random: rng.instance_variable_get(:@random)) end |
#generate_invalid(rng, context, args) ⇒ Object
106 107 108 |
# File 'lib/synthra/types/travel/travel.rb', line 106 def generate_invalid(rng, context, args) [nil, "not a flight", "invalid", [], {}].sample(random: rng.instance_variable_get(:@random)) end |
#generate_random(rng, context, args) ⇒ String
Generate random flight number
91 92 93 94 95 96 97 98 99 100 |
# File 'lib/synthra/types/travel/travel.rb', line 91 def generate_random(rng, context, args) airline = args[:airline] || rng.sample(AIRLINE_CODES) length = args[:length] || rng.int(3, 4) # Generate flight number digits max_value = 10**length - 1 number = format("%0#{length}d", rng.int(1, max_value)) "#{airline}#{number}" end |