class MorseCode::Encoder
Public Class Methods
new(message = '')
click to toggle source
# File lib/morse_code/encoder.rb, line 12 def initialize(message = '') @message = message.upcase end
Public Instance Methods
encode()
click to toggle source
# File lib/morse_code/encoder.rb, line 16 def encode @encode ||= [].tap do |encode_words| @message.split(/\s+/).each do |word| encode_words.concat(encode_word(word)) end encode_words.pop end.join(' ') end
encode_with()
click to toggle source
# File lib/morse_code/encoder.rb, line 25 def encode_with encode.dup.tap { |message| message.gsub!('.', 'DIT').gsub!('-', 'DAH') } end
Also aliased as: dit_dah
wave()
click to toggle source
# File lib/morse_code/encoder.rb, line 30 def wave MorseCode::Wave.new(encode).generate end
Private Instance Methods
encode_letter(letter)
click to toggle source
# File lib/morse_code/encoder.rb, line 42 def encode_letter(letter) fetch(letter) do MorseCode::Base.new(letter, self.class.name).call end end
encode_word(word)
click to toggle source
# File lib/morse_code/encoder.rb, line 36 def encode_word(word) encode_word = [] word.each_char { |char| encode_word << encode_letter(char) } encode_word.push('/') end