Telegraph is a Ruby gem that provides straightforward text-to-morse and morse-to-text translators

It uses as reference the document 'RECOMMENDATION ITU-R M.1677' from the International Telecommunication Union, Radiocommunication Sector (ITU-R), the United Nations agency for information and communication technology issues.

Getting started

Install the gem:

$ [sudo] gem install telegraph

Then depending on your project you may:

require the gem (if a ruby project):

require 'telegraph'

or add it to your Gemfile (if you're on Rails):

gem 'telegraph', :git => 'git://'


The simplest way to read or write morse code is using directly the two methods defined in Telegraph:

# Converts text to morse characters:
Telegraph.text_to_morse("Hello world")  #=> ".... . .-.. .-.. ---        .-- --- .-. .-.. -.."

# Reads morse characters into text:
Telegraph.morse_to_text(".... . .-.. .-.. ---        .-- --- .-. .-.. -..")  #=> hello world"

In the Telegraph module you will find defined also the most commonly used prosigns:

# Error sign:
Telegraph::Error    #=> "........"

#The complete list of prosigns:

All the generated morse code will use the character '.' as short signal (aka dot) and the character '-' as long signal (aka dash).

If you need to write or read using different characters as short and long signals you can do it instantiating your own Telegraph::MorseTransmission class:

# User defined dot & dash (:short and :long defaults to '.' and '-')
morser = =>'x', :long => '3')

and then using the methods to read/write:

# write morse code with custom signals 
morser.text_to_morse("Hello world")  #=> "xxxx x x3xx x3xx 333        x33 333 x3x x3xx 3xx"

# read morse code with custom signals 
morser.morse_to_text("xxxx x x3xx x3xx 333        x33 333 x3x x3xx 3xx")  #=> hello world"
morser.error    #=> "xxxxxxxx"



Juanjo Bazán


Copyright © 2010 Juanjo Bazán


Released under the MIT license.