Class: PhoneticEncoder
- Inherits:
-
Object
- Object
- PhoneticEncoder
- Defined in:
- lib/phonetic_encoder.rb,
lib/phonetic_encoder/version.rb,
lib/phonetic_encoder/dicts/nato.rb,
lib/phonetic_encoder/dicts/sounds.rb
Overview
Docs to come
Constant Summary collapse
- VERSION =
'1.0.0'.freeze
- NATO =
{ 'a' => 'alpha', 'b' => 'bravo', 'c' => 'charlie', 'd' => 'delta', 'e' => 'echo', 'f' => 'foxtrot', 'g' => 'golf', 'h' => 'hotel', 'i' => 'india', 'j' => 'juliett', 'k' => 'kilo', 'l' => 'lima', 'm' => 'mike', 'n' => 'november', 'o' => 'oscar', 'p' => 'papa', 'q' => 'quebec', 'r' => 'romeo', 's' => 'sierra', 't' => 'tango', 'u' => 'uniform', 'v' => 'victor', 'w' => 'whiskey', 'x' => 'x-ray', 'y' => 'yankee', 'z' => 'zulu' }.freeze
- SOUNDS =
{ 'a' => 'aye', 'b' => 'bee', 'c' => 'sea', 'd' => 'dee', 'e' => 'ee', 'f' => 'eff', 'g' => 'jee', 'h' => 'aytch', 'i' => 'eye', 'j' => 'jay', 'k' => 'kay', 'l' => 'el', 'm' => 'em', 'n' => 'en', 'o' => 'oh', 'p' => 'pee', 'q' => 'cue', 'r' => 'are', 's' => 'ess', 't' => 'tee', 'u' => 'you', 'v' => 'vee', 'w' => 'doubleyou', 'x' => 'ex', 'y' => 'why', 'z' => 'zed' }.freeze
Instance Method Summary collapse
- #custom(name, dict) ⇒ Object
- #encode(text, dict_name = 'nato') ⇒ Object
-
#initialize ⇒ PhoneticEncoder
constructor
A new instance of PhoneticEncoder.
- #letter_from_dictionary(letter, dict) ⇒ Object
Constructor Details
#initialize ⇒ PhoneticEncoder
Returns a new instance of PhoneticEncoder.
9 10 11 12 13 14 |
# File 'lib/phonetic_encoder.rb', line 9 def initialize @dict = {} @dict['nato'] = NATO @dict['sounds'] = SOUNDS end |
Instance Method Details
#custom(name, dict) ⇒ Object
16 17 18 |
# File 'lib/phonetic_encoder.rb', line 16 def custom(name, dict) @dict[name] = dict end |
#encode(text, dict_name = 'nato') ⇒ Object
24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/phonetic_encoder.rb', line 24 def encode(text, dict_name = 'nato') dict_name = 'nato' if dict_name.empty? return text unless @dict.key?(dict_name) result = '' text.downcase.split('').each do |letter| result << format('%<word>s ', word: letter_from_dictionary(letter, @dict[dict_name])) end result.rstrip end |
#letter_from_dictionary(letter, dict) ⇒ Object
20 21 22 |
# File 'lib/phonetic_encoder.rb', line 20 def letter_from_dictionary(letter, dict) dict.key?(letter) ? dict[letter].downcase : letter end |