kenny_speak 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: 9560189f07a2cb7560075bf31a43305cd99ba1b6154b7866187ebcb23d3f7c7b
4
- data.tar.gz: c97708c00f56d218093d32bb3aac520e2c98b0bae29d66f0d3c1b3ebdd75b78f
3
+ metadata.gz: 5e00dd7017e8a0ab2101bd487e9f2f25939ee5b7cb6332ab68d8829e75c68ea8
4
+ data.tar.gz: 8b98f3423afa7364b48b4c504a8c467979b24f89d9b337d1b6e4130ce4e1c2cf
5
5
  SHA512:
6
- metadata.gz: 6e75a80ecbb6ae33b8dc341ca3eaa02363b32f0b4b653d34db58ae861a64982f7430feeea2b8f14d08be63840467045f2b71db017402cfb2f4b73fa4c3d9fc96
7
- data.tar.gz: 345e9d0233c13689ddd550be28b0060597b638bbd64dbc77a1d95c016be61e9aca709d1beb336af892dded136eac747c82d751cfed7d110611a7d528ef0b10d2
6
+ metadata.gz: 291c3917b88e7d23187f9e54fd362e0ef7881f7f74ac46e076d5cd9755a4e6a176b64bc95fae1abee7332274dee53bb079e67a8d8e823f93e2c900cc1da9626b
7
+ data.tar.gz: 6ba2a748788ca2275afb6dd6344ee6b9f98b2666d1f18753738ef85e667a177902d97b9450d54589b546d72ff0d3a705c52d5a00534ef2511682f7ae02880ea0
@@ -1,3 +1,11 @@
1
+ ## 1.1.0 (January 24, 2019)
2
+
3
+ IMPROVEMENTS:
4
+
5
+ * Move the code inside of a module namespace. ([@TGWolf][])
6
+ * Extend the strings class so that str.to_kenny and str.from_kenny work. ([@TGWolf][])
7
+ * Update the documentation. ([@TGWolf][])
8
+
1
9
  ## 1.0.0 (January 22, 2019)
2
10
 
3
11
  * Initial Release ([@TGWolf][])
data/README.md CHANGED
@@ -33,9 +33,11 @@ Or install it yourself as:
33
33
  ```ruby
34
34
  require 'kenny_speak'
35
35
 
36
- ks = KennySpeak.new
36
+ puts KennySpeak::Kenny.to_kenny(message)
37
37
 
38
- puts ks.to_kenny(message)
38
+ # or
39
+
40
+ puts message.to_kenny
39
41
  ```
40
42
 
41
43
  ### Decode
@@ -43,9 +45,11 @@ Or install it yourself as:
43
45
  ```ruby
44
46
  require 'kenny_speak'
45
47
 
46
- ks = KennySpeak.new
48
+ puts KennySpeak::Kenny.from_kenny(message)
49
+
50
+ # or
47
51
 
48
- puts ks.from_kenny(message)
52
+ puts message.from_kenny
49
53
  ```
50
54
 
51
55
  ### Command Line
data/exe/kenny CHANGED
@@ -10,10 +10,8 @@ require 'kenny_speak'
10
10
  # -------------------------------------------------------------------------------- #
11
11
 
12
12
  def handle_kenny(options)
13
- ks = KennySpeak.new
14
-
15
- puts ks.to_kenny(options[:message]) if options[:encode]
16
- puts ks.from_kenny(options[:message]) if options[:decode]
13
+ puts KennySpeak::Kenny.to_kenny(options[:message]) if options[:encode]
14
+ puts KennySpeak::Kenny.from_kenny(options[:message]) if options[:decode]
17
15
  end
18
16
 
19
17
  # -------------------------------------------------------------------------------- #
@@ -1,74 +1,75 @@
1
1
  require 'kenny_speak/version'
2
+ require 'kenny_speak/letters'
3
+ require 'kenny_speak/strings'
2
4
 
3
5
  #
4
6
  # To Follow
5
7
  #
6
- class KennySpeak
7
- def initialize
8
- @letters = ['mmm', 'mmp', 'mmf', 'mpm', 'mpp', 'mpf', 'mfm', 'mfp', 'mff', 'pmm', 'pmp', 'pmf', 'ppm', 'ppp', 'ppf', 'pfm', 'pfp', 'pff', 'fmm', 'fmp', 'fmf', 'fpm', 'fpp', 'fpf', 'ffm', 'ffp']
9
- end
10
-
11
- def to_kenny(str)
12
- result = ''
13
-
14
- str.split('').each do |c|
15
- result << if c =~ /[[:alpha:]]/
16
- kenny_from_letter(c)
17
- else
18
- c
19
- end
8
+ module KennySpeak
9
+ #
10
+ # To Follow
11
+ #
12
+ class Kenny
13
+ def self.to_kenny(str)
14
+ result = ''
15
+
16
+ str.split('').each do |c|
17
+ result << if c =~ /[[:alpha:]]/
18
+ kenny_from_letter(c)
19
+ else
20
+ c
21
+ end
22
+ end
23
+ result
20
24
  end
21
- result
22
- end
23
25
 
24
- def from_kenny(str)
25
- result = ''
26
+ def self.from_kenny(str)
27
+ result = ''
26
28
 
27
- str.gsub(/\s+/m, ' ').strip.split(' ').each do |word|
28
- word.scan(/.{1,3}/).each do |tuple|
29
- result << letter_from_kenny(tuple)
29
+ str.gsub(/\s+/m, ' ').strip.split(' ').each do |word|
30
+ word.scan(/.{1,3}/).each do |tuple|
31
+ result << letter_from_kenny(tuple)
32
+ end
33
+ result << ' '
30
34
  end
31
- result << ' '
35
+ result.rstrip
32
36
  end
33
- result.rstrip
34
- end
35
-
36
- private
37
37
 
38
- def kenny_from_letter(letter)
39
- upper = false
38
+ def self.kenny_from_letter(letter)
39
+ upper = false
40
40
 
41
- upper = true if letter =~ /[[:upper:]]/
41
+ upper = true if letter =~ /[[:upper:]]/
42
42
 
43
- tmp = letter.downcase
43
+ tmp = letter.downcase
44
44
 
45
- offset = tmp.ord - 97
45
+ offset = tmp.ord - 97
46
46
 
47
- tuple = @letters[offset]
47
+ tuple = KENNY_LETTERS[offset]
48
48
 
49
- return tuple.capitalize if upper
49
+ return tuple.capitalize if upper
50
50
 
51
- tuple
52
- end
51
+ tuple
52
+ end
53
53
 
54
- def letter_from_kenny(tuple)
55
- return tuple if tuple.length != 3 # Not a tuple
56
- return tuple if tuple[/[a-zA-Z0-9]+/] != tuple # Not just letters
54
+ def self.letter_from_kenny(tuple)
55
+ return tuple if tuple.length != 3 # Not a tuple
56
+ return tuple if tuple[/[a-zA-Z0-9]+/] != tuple # Not just letters
57
57
 
58
- upper = false
58
+ upper = false
59
59
 
60
- upper = true if tuple.chr =~ /[[:upper:]]/
60
+ upper = true if tuple.chr =~ /[[:upper:]]/
61
61
 
62
- tmp = tuple.downcase
62
+ tmp = tuple.downcase
63
63
 
64
- offset = @letters.index(tmp)
64
+ offset = KENNY_LETTERS.index(tmp)
65
65
 
66
- return tuple if offset.nil?
66
+ return tuple if offset.nil?
67
67
 
68
- letter = (offset.to_i + 97).chr
68
+ letter = (offset.to_i + 97).chr
69
69
 
70
- return letter.upcase if upper
70
+ return letter.upcase if upper
71
71
 
72
- letter
72
+ letter
73
+ end
73
74
  end
74
75
  end
@@ -0,0 +1,3 @@
1
+ module KennySpeak
2
+ KENNY_LETTERS = ['mmm', 'mmp', 'mmf', 'mpm', 'mpp', 'mpf', 'mfm', 'mfp', 'mff', 'pmm', 'pmp', 'pmf', 'ppm', 'ppp', 'ppf', 'pfm', 'pfp', 'pff', 'fmm', 'fmp', 'fmf', 'fpm', 'fpp', 'fpf', 'ffm', 'ffp'].freeze
3
+ end
@@ -0,0 +1,20 @@
1
+ #
2
+ # Overload the string class
3
+ #
4
+ class String
5
+ def to_kenny
6
+ KennySpeak::Kenny.to_kenny(self)
7
+ end
8
+
9
+ def to_kenny!
10
+ replace to_kenny
11
+ end
12
+
13
+ def from_kenny
14
+ KennySpeak::Kenny.from_kenny(self)
15
+ end
16
+
17
+ def from_kenny!
18
+ replace from_kenny
19
+ end
20
+ end
@@ -1,3 +1,3 @@
1
- class KennySpeak
2
- VERSION = '1.0.0'.freeze
1
+ module KennySpeak
2
+ VERSION = '1.1.0'.freeze
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kenny_speak
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 aka Wolf
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2019-01-22 00:00:00.000000000 Z
11
+ date: 2019-01-24 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -76,6 +76,8 @@ files:
76
76
  - exe/kenny
77
77
  - kenny_speak.gemspec
78
78
  - lib/kenny_speak.rb
79
+ - lib/kenny_speak/letters.rb
80
+ - lib/kenny_speak/strings.rb
79
81
  - lib/kenny_speak/version.rb
80
82
  homepage: https://github.com/WolfSoftware/kenny_speak
81
83
  licenses: