Class: CesarCifrado

Inherits:
Object
  • Object
show all
Defined in:
lib/cobreak/cesar.rb

Instance Method Summary collapse

Instance Method Details

#cesar(dato, rotasiones, orientacion = 1) ⇒ Object



2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
# File 'lib/cobreak/cesar.rb', line 2

def cesar(dato, rotasiones, orientacion = 1)
  cesar = OpenStruct.new
  cesar.cad_rot = []
  alfa_mayus = ('A'..'Z').to_a
  alfa_minus = ('a'..'z').to_a
  alf = 26
  lit_mayus = 65
  lit_minus = 97
  cad_rot = ""
  for letra in dato.chars
    if !letra.match(/^[[:alpha:]]$/)
      cad_rot += letra
      next
    end
    alfabeto = alfa_mayus
    limit = lit_mayus
    if letra == letra.downcase
      alfabeto = alfa_minus
      limit = lit_minus
    end
    var_ascii = letra.ord
    rot_ver = rotasiones * orientacion
    new_pos = (var_ascii - limit + rot_ver) % alf
    cesar.cad_rot << alfabeto[new_pos]
    end
    return cesar.cad_rot.join('')
end