# File lib/quiz1/t/solutions/James Edward Gray II/solitaire.rb, line 5
def encrypt(message)
        # Step 1
        message = message.upcase.tr("^A-Z", "")
        i = 5
        while i < message.size
                message[i, 0] = " "
                i += 6
        end
        message += "X" while message.rindex(" ") != message.size - 6
        
        # Step 2
        key_stream = generate(message.count("^ "))
        
        # Step 3
        values = message.split("").map { |letter| letter[0] - ?A + 1 }

        # Step 4
        key_values = key_stream.split("").map { |letter| letter[0] - ?A + 1 }
        
        # Step 5
        values.each_with_index do |value, index|
                next if value < 0
                values[index] = value + key_values[index]
                values[index] -= 26 if values[index] > 26
        end
        
        # Step 6
        message = (values.map { |number| (number - 1 + ?A).chr }).join("")
        
        return message
end