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

dit_dah()
Alias for: encode_with
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