phonetic_encoder 1.0.0 → 1.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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