Class: MorseCodec

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

Instance Method Summary collapse

Constructor Details

#initializeMorseCodec

Returns a new instance of MorseCodec.



5
6
7
# File 'lib/morse_codec.rb', line 5

def initialize
  @morse_code = MorseCodec::MorseHelper.load_dictionary
end

Instance Method Details

#decode_morse(morse_str = "") ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
# File 'lib/morse_codec.rb', line 25

def decode_morse(morse_str="")
  result_arr = []
  morse_arr = morse_str.split('  ')

  morse_word = ""
  morse_arr.each do |this_word|
    splitted = this_word.to_s.split(' ')
    splitted.each do |this_letter|
      #p = @morse_code.select{|key, hash| hash == this_letter} || [["",""]]
      #morse_word << p.flatten[0]
      morse_word << @morse_code.invert[this_letter] || ""
    end
    result_arr << morse_word.to_s.capitalize << " "
    morse_word = ""
  end
  return result_arr.to_s.strip
end

#to_morse(reg_str = "") ⇒ Object



9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/morse_codec.rb', line 9

def to_morse(reg_str="")
  morse_result_arr = []
  str_arr = reg_str.gsub(' ','%').split('%')

  morse_word = ""
  str_arr.each do |this_word|
    splitted = this_word.to_s.split('')
    splitted.each do |this_letter|
      morse_word << (@morse_code[this_letter.upcase].to_s || this_letter) << " "
    end
    morse_result_arr << morse_word << "  "
    morse_word = ""
  end
  return morse_result_arr.to_s.strip
end