Class: Synthra::Types::Travel::SeatNumber

Inherits:
Base
  • Object
show all
Defined in:
lib/synthra/types/travel/travel.rb

Overview

SeatNumber type

Constant Summary collapse

DEFAULT_SEATS =

Default aircraft seat letters

Standard 6-seat configuration (A-F) for economy class.

Returns:

  • (Array<String>)

    list of seat letters

["A", "B", "C", "D", "E", "F"].freeze

Instance Method Summary collapse

Instance Method Details

#generate_edge(rng, context, args) ⇒ Object



140
141
142
# File 'lib/synthra/types/travel/travel.rb', line 140

def generate_edge(rng, context, args)
  ["1A", "30F", "1B"].sample(random: rng.instance_variable_get(:@random))
end

#generate_invalid(rng, context, args) ⇒ Object



144
145
146
# File 'lib/synthra/types/travel/travel.rb', line 144

def generate_invalid(rng, context, args)
  [nil, "not a seat", "invalid", [], {}].sample(random: rng.instance_variable_get(:@random))
end

#generate_random(rng, context, args) ⇒ String

Generate random seat number

Parameters:

Options Hash (args):

  • :rows (Integer)

    number of rows (default: 1..30)

  • :seats (Array<String>)

    seat letters (default: A-F)

Returns:

  • (String)

    generated seat number



130
131
132
133
134
135
136
137
138
# File 'lib/synthra/types/travel/travel.rb', line 130

def generate_random(rng, context, args)
  max_rows = args[:rows] || 30
  seats = args[:seats] || DEFAULT_SEATS

  row = rng.int(1, max_rows)
  seat = rng.sample(seats)

  "#{row}#{seat}"
end