Class: EnigmaEncrypto::Decrypt

Inherits:
Object
  • Object
show all
Defined in:
lib/enigma_encrypto/decrypt.rb

Instance Method Summary collapse

Constructor Details

#initializeDecrypt

Returns a new instance of Decrypt.



7
8
9
10
11
# File 'lib/enigma_encrypto/decrypt.rb', line 7

def initialize
  @file_handler = FileHandler.new
  @rotator = Rotator.new
  @rotation_num_gen = RotationNumGen.new
end

Instance Method Details

#actionObject



43
44
45
46
47
48
# File 'lib/enigma_encrypto/decrypt.rb', line 43

def action
  exit if !get_command_args
  exit if !check_command_args
  decrypt
  puts "Decrypted #{@decrypted} with the key #{@key} and date #{@date}"
end

#check_command_argsObject



25
26
27
28
29
30
31
32
33
# File 'lib/enigma_encrypto/decrypt.rb', line 25

def check_command_args
  if ("%05d" % (@key.to_i)).size != 5 || ("%06d" % (@date.to_i)).size != 6
    puts "Incorrect key or date entered"
    return false; end
  operation = @file_handler.check_file_useability(@encrypted, @decrypted)
  return false if operation == false || operation == "c"
  File.truncate(@decrypted, 0) if operation == "w"
  true
end

#decryptObject



35
36
37
38
39
40
41
# File 'lib/enigma_encrypto/decrypt.rb', line 35

def decrypt
  @reverse_array = @rotation_num_gen.reverse_num_array(@key, @date)
  @opened_msg = @file_handler.read(@encrypted)
  length = @opened_msg.size
  decrypt_message(length)
  @opened_msg.close
end

#get_command_argsObject



13
14
15
16
17
18
19
20
21
22
23
# File 'lib/enigma_encrypto/decrypt.rb', line 13

def get_command_args
  if ARGV.length != 4
    puts "Oooops!\nIncorrect number of arguments supplied.\nTry again."
    return false
  else
    @encrypted = ARGV[0]
    @decrypted = ARGV[1]
    @key = ARGV[2]
    @date = ARGV[3]
  end
end