# File lib/quiz1/t/solutions/James Edward Gray II/solitaire.rb, line 37 def decrypt(message) # Step 1 key_stream = generate(message.size) # Step 2 values = message.split("").map { |letter| letter[0] - ?A + 1 } # Step 3 key_values = key_stream.split("").map { |letter| letter[0] - ?A + 1 } # Step 4 values.each_with_index do |value, index| next if value < 0 if value <= key_values[index] values[index] = value + 26 - key_values[index] else values[index] = value - key_values[index] end end # Step 5 message = (values.map { |number| (number - 1 + ?A).chr }).join("") return message end