class ShipChooser

Attributes

ship_builder[R]
ship_class[R]
ship_group_options[R]

Public Class Methods

new() click to toggle source
# File lib/uss-enterprise/ship_chooser.rb, line 6
def initialize
  @ship_group_options = {
    'StarShip'    => StarShipBuilder.new,
    'SeaShip'     => SeaShipBuilder.new,
    'OrbitalShip' => OrbitalShipBuilder.new
  }
end

Public Instance Methods

choose_ship_class(request) click to toggle source
# File lib/uss-enterprise/ship_chooser.rb, line 24
def choose_ship_class(request)
  if request == 'random'
    # chooses a random key from the available blueprints
    @ship_class = @ship_builder.available_blueprints.keys.sample
  else
    @ship_class = request
  end
end
choose_ship_group(request) click to toggle source
# File lib/uss-enterprise/ship_chooser.rb, line 14
def choose_ship_group(request)
  if request == 'random'
    group = @ship_group_options.keys.sample
  else
    group = request
  end

  @ship_builder = @ship_group_options[group]
end
commission_construction() click to toggle source
# File lib/uss-enterprise/ship_chooser.rb, line 33
def commission_construction
  @ship_builder.define_blueprint(@ship_class)
  @ship_builder.build_it
end