kenny_speak 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: 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: