class MorseCode
file: morsecode.rb
Public Class Methods
new(input_string='')
click to toggle source
# File lib/morsecode.rb, line 8 def initialize(input_string='') @h = { "t"=>"1", "m"=>"11", "n"=>"12", "o"=>"111", "g"=>"112", "q"=>"1121", "z"=>"1122", "k"=>"121", "d"=>"122", "-"=>"2211", "."=>"212121", "y"=>"1211", "c"=>"1212", "x"=>"1221", "b"=>"1222", "e"=>"2", "a"=>"21", "i"=>"22", "w"=>"211", "r"=>"212", ""=>"2121", "l"=>"2122", "u"=>"221", "s"=>"222", "j"=>"2111", "p"=>"2112", "f"=>"2212", "v"=>"2221", "h"=>"2222", "1"=>"21111", "2"=>"22111", "3"=>"22211", "4"=>"22221", "5"=>"22222", "6"=>"12222", "7"=>"11222", "8"=>"11122", "9"=>"11112", "0"=>"11111", " "=>"5", "_"=>"221121", ":"=>"222111", "/"=>"12212", "@"=>"211212", "?"=>"221122", ","=>"112211", "^"=>"3" } @input_string = input_string end
Public Instance Methods
to_mc()
click to toggle source
# File lib/morsecode.rb, line 30 def to_mc @input_string.split(//).map{|char| @h[char]}.join('4') end
to_s()
click to toggle source
# File lib/morsecode.rb, line 25 def to_s @input_string.split(/5/).map \ {|word| word.split(/4/).map{|code| @h.invert[code]}.join }.join ' ' end