Class: ShipChooser

Inherits:
Object
  • Object
show all
Defined in:
lib/uss-enterprise/ship_chooser.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeShipChooser

Returns a new instance of ShipChooser.



6
7
8
9
10
11
12
# File 'lib/uss-enterprise/ship_chooser.rb', line 6

def initialize
  @ship_group_options = {
    'StarShip'    => StarShipBuilder.new,
    'SeaShip'     => SeaShipBuilder.new,
    'OrbitalShip' => OrbitalShipBuilder.new
  }
end

Instance Attribute Details

#ship_builderObject (readonly)

Returns the value of attribute ship_builder.



4
5
6
# File 'lib/uss-enterprise/ship_chooser.rb', line 4

def ship_builder
  @ship_builder
end

#ship_classObject (readonly)

Returns the value of attribute ship_class.



4
5
6
# File 'lib/uss-enterprise/ship_chooser.rb', line 4

def ship_class
  @ship_class
end

#ship_group_optionsObject (readonly)

Returns the value of attribute ship_group_options.



4
5
6
# File 'lib/uss-enterprise/ship_chooser.rb', line 4

def ship_group_options
  @ship_group_options
end

Instance Method Details

#choose_ship_class(request) ⇒ Object



24
25
26
27
28
29
30
31
# 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) ⇒ Object



14
15
16
17
18
19
20
21
22
# 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_constructionObject



33
34
35
36
# File 'lib/uss-enterprise/ship_chooser.rb', line 33

def commission_construction
  @ship_builder.define_blueprint(@ship_class)
  @ship_builder.build_it
end