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