class Mi100::Morsecoder
Constants
- DEFAULT_LETTER_SPACE_DOTS
- DEFAULT_MORSE_FREQUENCY
- DEFAULT_MORSE_UNIT_MILLIS
- DEFAULT_WORD_SPACE_DOTS
- MORSECODE
Attributes
default_frequency[RW]
default_unit[RW]
frequency[RW]
str[RW]
unit[RW]
Public Class Methods
new(str="HELLO WORLD", frequency = Morsecoder.default_frequency, unit=Morsecoder.default_unit)
click to toggle source
# File lib/mi100/morsecoder.rb, line 105 def initialize(str="HELLO WORLD", frequency = Morsecoder.default_frequency, unit=Morsecoder.default_unit) @str = str @frequency = frequency @unit = unit end
reset()
click to toggle source
# File lib/mi100/morsecoder.rb, line 94 def reset @default_unit = DEFAULT_MORSE_UNIT_MILLIS @default_frequency = DEFAULT_MORSE_FREQUENCY @default_letter_space = DEFAULT_LETTER_SPACE_DOTS @default_word_space = DEFAULT_WORD_SPACE_DOTS end
to_morse_from(the_str, frequency = @default_frequency, unit = @default_unit)
click to toggle source
# File lib/mi100/morsecoder.rb, line 73 def to_morse_from(the_str, frequency = @default_frequency, unit = @default_unit) letter_space = @default_letter_space word_space = @default_word_space morsecode = [] the_str.to_s.split(//).each do |char| code = MORSECODE[char.upcase] if code code.each do |dots| morsecode << {frequency: frequency, duration: unit * dots} morsecode << {frequency: false, duration: unit * dots} end morsecode << {frequency: false, duration: unit * letter_space} else morsecode << {frequency: false, duration: unit * word_space} end end morsecode end
Public Instance Methods
each() { |code, code| ... }
click to toggle source
# File lib/mi100/morsecoder.rb, line 117 def each to_morse.each {|code| yield(code[:frequency], code[:duration])} end
to_morse()
click to toggle source
# File lib/mi100/morsecoder.rb, line 111 def to_morse frequency = @frequency unit = @unit Morsecoder.to_morse_from(@str, frequency, unit) end