class ObfuscatedMorseCode::MorseCodeTranslator
Attributes
letter_separator[R]
word_separator[R]
Public Class Methods
new(letter_separator: '|', word_separator: '/')
click to toggle source
# File lib/obfuscated_morse_code/morse_code_translator.rb, line 9 def initialize(letter_separator: '|', word_separator: '/') @letter_separator = letter_separator @word_separator = word_separator end
Public Instance Methods
translate(sentences)
click to toggle source
# File lib/obfuscated_morse_code/morse_code_translator.rb, line 14 def translate(sentences) sentences.map do |sentence| letters = sentence.split('') translate_letters(letters) end end
Private Instance Methods
translate_letter(letter)
click to toggle source
# File lib/obfuscated_morse_code/morse_code_translator.rb, line 35 def translate_letter(letter) return '' if letter == ' ' raise ArgumentError, "cannot translate character #{letter}" unless MORSE_CODE.key?(letter) MORSE_CODE[letter] end
translate_letters(letters)
click to toggle source
# File lib/obfuscated_morse_code/morse_code_translator.rb, line 23 def translate_letters(letters) translated_letters = '' letters.each_with_index do |letter, i| next_letter = letters[i + 1] translated_letters += translate_letter(letter) unless letter == ' ' translated_letters += word_separator_for(next_letter) end end translated_letters end
word_separator_for(next_letter)
click to toggle source
# File lib/obfuscated_morse_code/morse_code_translator.rb, line 42 def word_separator_for(next_letter) return word_separator if next_letter == ' ' return '' if next_letter.nil? letter_separator end