Class: EnigmaRuby::AdvanceRotorsCommand

Inherits:
Command
  • Object
show all
Defined in:
lib/enigma_ruby/commands/advance_rotors_command.rb

Instance Method Summary collapse

Constructor Details

#initialize(rotors) ⇒ AdvanceRotorsCommand

Returns a new instance of AdvanceRotorsCommand.



3
4
5
# File 'lib/enigma_ruby/commands/advance_rotors_command.rb', line 3

def initialize(rotors)
  @rotors = rotors
end

Instance Method Details

#execute(_) ⇒ Object



7
8
9
10
11
12
13
14
15
# File 'lib/enigma_ruby/commands/advance_rotors_command.rb', line 7

def execute(_)
  @rotors[0].advance
  @rotors.each_with_index do |rotor, i|
    next if i == 0
    break unless @rotors[i - 1].at_notch?

    rotor.advance
  end
end