phonetic_encoder 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: bffd07f7683a402aee61e29fb8ac44fc5e4a4e3dc7eefdba982a83c16d313e1b
4
- data.tar.gz: 768e2c485c8600e6bdc37c190effb218f7733a79c807895e27cbf9629842bfba
3
+ metadata.gz: b350ed382c99460a6e3c8a3262759053ee6498955782ac4457da61330608a260
4
+ data.tar.gz: b1332831700d6cfa2315d989cbf4bca072f71a8e8375982548bfced0d85e7674
5
5
  SHA512:
6
- metadata.gz: 3f3a201efed82057d67ba2a4852e20a6614947d5f37d7216aacdad9182ca02f99978c76c9d6908e8f6bb1c52854a879e508e216ede15e0f19c2e694ef7791cb8
7
- data.tar.gz: 6f4be6b167f10e9b6d1ece2e3144a5d54dad913d91ee1fd0fbdc3634c7389cc0958599b8467f46f0c774b2bcd5c4273040c07ad5197a955eac7924ea61326189
6
+ metadata.gz: 02b997bb9acd574dffdfe39e1f8c1e869d6a39433396ba69eb14fd40ddeea049280e16ddf55cc2be0e97eeb8b5074865adedd28397f396f5e9daffc55607968d
7
+ data.tar.gz: 6b60eb712e646fbdfe307c11765a39dc2bb268f7c1cf4f7d5cec05b24308caab901470034e8d7d2deb80df451f589fdb265261eb4f171492560c59e62318e329
data/exe/phonetic_encoder CHANGED
@@ -10,12 +10,10 @@ require 'phonetic_encoder'
10
10
  # -------------------------------------------------------------------------------- #
11
11
 
12
12
  def encode(options)
13
- npa = PhoneticEncoder.new
14
-
15
13
  if options[:dictionary]
16
- puts npa.encode(options[:message], options[:dictionary])
14
+ puts PhoneticEncoder::Encoder.encode(options[:message], options[:dictionary])
17
15
  else
18
- puts npa.encode(options[:message])
16
+ puts PhoneticEncoder::Encoder.encode(options[:message])
19
17
  end
20
18
  end
21
19
 
@@ -1,36 +1,44 @@
1
- require 'phonetic_encoder/version'
2
- require 'phonetic_encoder/dicts/nato.rb'
3
- require 'phonetic_encoder/dicts/sounds.rb'
1
+ require_relative 'phonetic_encoder/version'
2
+ require_relative 'phonetic_encoder/strings'
3
+ require_relative 'phonetic_encoder/dicts/nato'
4
+ require_relative 'phonetic_encoder/dicts/sounds'
4
5
 
5
6
  #
6
7
  # Docs to come
7
8
  #
8
- class PhoneticEncoder
9
- def initialize
10
- @dict = {}
9
+ module PhoneticEncoder
10
+ #
11
+ # To go here
12
+ #
13
+ class Encoder
14
+ $dict = {}
15
+
16
+ def self.setup
17
+ $dict['nato'] = NATO
18
+ $dict['sounds'] = SOUNDS
19
+ end
11
20
 
12
- @dict['nato'] = NATO
13
- @dict['sounds'] = SOUNDS
14
- end
21
+ def self.custom(name, dict)
22
+ $dict[name] = dict
23
+ end
15
24
 
16
- def custom(name, dict)
17
- @dict[name] = dict
18
- end
25
+ def self.encode(text, dict_name = 'nato')
26
+ setup
19
27
 
20
- def letter_from_dictionary(letter, dict)
21
- dict.key?(letter) ? dict[letter].downcase : letter
22
- end
28
+ dict_name = 'nato' if dict_name.empty?
23
29
 
24
- def encode(text, dict_name = 'nato')
25
- dict_name = 'nato' if dict_name.empty?
30
+ return text unless $dict.key?(dict_name)
26
31
 
27
- return text unless @dict.key?(dict_name)
32
+ result = ''
28
33
 
29
- result = ''
34
+ text.downcase.split('').each do |letter|
35
+ result << format('%<word>s ', word: letter_from_dictionary(letter, $dict[dict_name]))
36
+ end
37
+ result.rstrip
38
+ end
30
39
 
31
- text.downcase.split('').each do |letter|
32
- result << format('%<word>s ', word: letter_from_dictionary(letter, @dict[dict_name]))
40
+ def self.letter_from_dictionary(letter, dict)
41
+ dict.key?(letter) ? dict[letter].downcase : letter
33
42
  end
34
- result.rstrip
35
43
  end
36
44
  end
@@ -1,4 +1,4 @@
1
- class PhoneticEncoder
1
+ module PhoneticEncoder
2
2
  NATO = { 'a' => 'alpha',
3
3
  'b' => 'bravo',
4
4
  'c' => 'charlie',
@@ -1,4 +1,4 @@
1
- class PhoneticEncoder
1
+ module PhoneticEncoder
2
2
  SOUNDS = { 'a' => 'aye',
3
3
  'b' => 'bee',
4
4
  'c' => 'sea',
@@ -0,0 +1,12 @@
1
+ #
2
+ # Overload the string class
3
+ #
4
+ class String
5
+ def phonetic_encode(dict = 'nato')
6
+ PhoneticEncoder::Encoder.encode(self, dict)
7
+ end
8
+
9
+ def phonetic_encode!(dict = 'nato')
10
+ replace phonetic_encode(dict)
11
+ end
12
+ end
@@ -1,3 +1,3 @@
1
- class PhoneticEncoder
2
- VERSION = '1.0.0'.freeze
1
+ module PhoneticEncoder
2
+ VERSION = '1.1.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: phonetic_encoder
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Tim Gurney
@@ -78,6 +78,7 @@ files:
78
78
  - lib/phonetic_encoder.rb
79
79
  - lib/phonetic_encoder/dicts/nato.rb
80
80
  - lib/phonetic_encoder/dicts/sounds.rb
81
+ - lib/phonetic_encoder/strings.rb
81
82
  - lib/phonetic_encoder/version.rb
82
83
  - phonetic_encoder.gemspec
83
84
  homepage: https://github.com/WolfSoftware/phonetic_encoder