class EnigmaEncrypto::Serialize

Public Class Methods

new(key) click to toggle source
# File lib/enigma_encrypto/serialize.rb, line 5
def initialize(key)
  @key = key
end

Public Instance Methods

action() click to toggle source
# File lib/enigma_encrypto/serialize.rb, line 37
def action
  make_all_keys_positive
  create_original_key_array
  make_new_key_string
end
create_original_key_array() click to toggle source
# File lib/enigma_encrypto/serialize.rb, line 19
def create_original_key_array
  @new_key_array = []
  3.times do |index|
    key_for_next_index = key_getter(@key[index], @key[index + 1])
    @key[index + 1] = key_for_next_index
  end
  @new_key_array << @key[3]
end
make_all_keys_positive() click to toggle source
# File lib/enigma_encrypto/serialize.rb, line 9
def make_all_keys_positive
  @key.map! do |num|
    num = num.to_i
    while num < 0 do
      num += 39
    end
    "%02d" %  num
  end
end
make_new_key_string() click to toggle source
# File lib/enigma_encrypto/serialize.rb, line 28
def make_new_key_string
  new_key_string = ""
  new_key_string << @new_key_array[0][0]
  new_key_string << @new_key_array[1][0]
  new_key_string << @new_key_array[1][1]
  new_key_string << @new_key_array[3][0]
  new_key_string << @new_key_array[3][1]
end

Private Instance Methods

key_getter(key0, key1) click to toggle source
# File lib/enigma_encrypto/serialize.rb, line 45
def key_getter(key0, key1)
  @key1 = key1
  @count = 0
  if key0[1] == key1[0]
    @new_key_array << key0
    return key1; end
  while key0[1] != key1[0] do
    key1 = (key1.to_i + 39).to_s
    if key0[1] == key1[0]
      @new_key_array << key0
      return key1
    elsif key1.to_i > 99
      key1 = (@key1.to_i - 39).to_s
      @count += 1
    end
    if @count == 1
      key0 = (key0.to_i + 39).to_s
      @count = 0
    end
  end

end