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 +4 -4
- data/CHANGELOG.md +8 -0
- data/README.md +8 -4
- data/exe/kenny +2 -4
- data/lib/kenny_speak.rb +47 -46
- data/lib/kenny_speak/letters.rb +3 -0
- data/lib/kenny_speak/strings.rb +20 -0
- data/lib/kenny_speak/version.rb +2 -2
- metadata +4 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 5e00dd7017e8a0ab2101bd487e9f2f25939ee5b7cb6332ab68d8829e75c68ea8
|
4
|
+
data.tar.gz: 8b98f3423afa7364b48b4c504a8c467979b24f89d9b337d1b6e4130ce4e1c2cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 291c3917b88e7d23187f9e54fd362e0ef7881f7f74ac46e076d5cd9755a4e6a176b64bc95fae1abee7332274dee53bb079e67a8d8e823f93e2c900cc1da9626b
|
7
|
+
data.tar.gz: 6ba2a748788ca2275afb6dd6344ee6b9f98b2666d1f18753738ef85e667a177902d97b9450d54589b546d72ff0d3a705c52d5a00534ef2511682f7ae02880ea0
|
data/CHANGELOG.md
CHANGED
@@ -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
|
-
|
36
|
+
puts KennySpeak::Kenny.to_kenny(message)
|
37
37
|
|
38
|
-
|
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
|
-
|
48
|
+
puts KennySpeak::Kenny.from_kenny(message)
|
49
|
+
|
50
|
+
# or
|
47
51
|
|
48
|
-
puts
|
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
|
-
|
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
|
# -------------------------------------------------------------------------------- #
|
data/lib/kenny_speak.rb
CHANGED
@@ -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
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
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
|
-
|
25
|
-
|
26
|
+
def self.from_kenny(str)
|
27
|
+
result = ''
|
26
28
|
|
27
|
-
|
28
|
-
|
29
|
-
|
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
|
-
|
39
|
-
|
38
|
+
def self.kenny_from_letter(letter)
|
39
|
+
upper = false
|
40
40
|
|
41
|
-
|
41
|
+
upper = true if letter =~ /[[:upper:]]/
|
42
42
|
|
43
|
-
|
43
|
+
tmp = letter.downcase
|
44
44
|
|
45
|
-
|
45
|
+
offset = tmp.ord - 97
|
46
46
|
|
47
|
-
|
47
|
+
tuple = KENNY_LETTERS[offset]
|
48
48
|
|
49
|
-
|
49
|
+
return tuple.capitalize if upper
|
50
50
|
|
51
|
-
|
52
|
-
|
51
|
+
tuple
|
52
|
+
end
|
53
53
|
|
54
|
-
|
55
|
-
|
56
|
-
|
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
|
-
|
58
|
+
upper = false
|
59
59
|
|
60
|
-
|
60
|
+
upper = true if tuple.chr =~ /[[:upper:]]/
|
61
61
|
|
62
|
-
|
62
|
+
tmp = tuple.downcase
|
63
63
|
|
64
|
-
|
64
|
+
offset = KENNY_LETTERS.index(tmp)
|
65
65
|
|
66
|
-
|
66
|
+
return tuple if offset.nil?
|
67
67
|
|
68
|
-
|
68
|
+
letter = (offset.to_i + 97).chr
|
69
69
|
|
70
|
-
|
70
|
+
return letter.upcase if upper
|
71
71
|
|
72
|
-
|
72
|
+
letter
|
73
|
+
end
|
73
74
|
end
|
74
75
|
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
|
data/lib/kenny_speak/version.rb
CHANGED
@@ -1,3 +1,3 @@
|
|
1
|
-
|
2
|
-
VERSION = '1.
|
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.
|
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-
|
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:
|