class ObfuscatedMorseCode::MorseCodeObfuscator

Constants

DASH_OBFUSCATION_DICTIONARY

Attributes

morse_codes[R]

Public Class Methods

new(morse_codes) click to toggle source
# File lib/obfuscated_morse_code/morse_code_obfuscator.rb, line 9
def initialize(morse_codes)
  @morse_codes = morse_codes
end

Public Instance Methods

obfuscate() click to toggle source
# File lib/obfuscated_morse_code/morse_code_obfuscator.rb, line 13
def obfuscate
  morse_codes.map do |code|
    obfuscated = replace_dots_with_numbers(code)
    replace_dashes_with_characters(obfuscated)
  end
end

Private Instance Methods

replace_dashes_with_characters(code) click to toggle source
# File lib/obfuscated_morse_code/morse_code_obfuscator.rb, line 40
def replace_dashes_with_characters(code)
  obfuscated_code = ''
  number_of_dashes_found = 0
  code.split('').each do |character|
    if character == '-'
      number_of_dashes_found += 1
    else
      if number_of_dashes_found.positive?
        obfuscated_code += DASH_OBFUSCATION_DICTIONARY[number_of_dashes_found - 1]
      end
      obfuscated_code += character
      number_of_dashes_found = 0
    end
  end
  obfuscated_code += DASH_OBFUSCATION_DICTIONARY[number_of_dashes_found - 1] if number_of_dashes_found.positive?
  obfuscated_code
end
replace_dots_with_numbers(code) click to toggle source
# File lib/obfuscated_morse_code/morse_code_obfuscator.rb, line 22
def replace_dots_with_numbers(code)
  obfuscated_code = ''
  number_of_dots_found = 0
  code.split('').each do |character|
    if character == '.'
      number_of_dots_found += 1
    else
      if number_of_dots_found.positive?
        obfuscated_code += number_of_dots_found.to_s
      end
      obfuscated_code += character
      number_of_dots_found = 0
    end
  end
  obfuscated_code += number_of_dots_found.to_s if number_of_dots_found.positive?
  obfuscated_code
end