Class: KennySpeak::Kenny
- Inherits:
-
Object
- Object
- KennySpeak::Kenny
- Defined in:
- lib/kenny_speak.rb
Overview
To Follow
Class Method Summary collapse
- .from_kenny(str) ⇒ Object
- .kenny_from_letter(letter) ⇒ Object
- .letter_from_kenny(tuple) ⇒ Object
- .to_kenny(str) ⇒ Object
Class Method Details
.from_kenny(str) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/kenny_speak.rb', line 26 def self.from_kenny(str) result = '' str.gsub(/\s+/m, ' ').strip.split(' ').each do |word| word.scan(/.{1,3}/).each do |tuple| result << letter_from_kenny(tuple) end result << ' ' end result.rstrip end |
.kenny_from_letter(letter) ⇒ Object
38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 |
# File 'lib/kenny_speak.rb', line 38 def self.kenny_from_letter(letter) upper = false upper = true if letter =~ /[[:upper:]]/ tmp = letter.downcase offset = tmp.ord - 97 tuple = KENNY_LETTERS[offset] return tuple.capitalize if upper tuple end |
.letter_from_kenny(tuple) ⇒ Object
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 |
# File 'lib/kenny_speak.rb', line 54 def self.letter_from_kenny(tuple) return tuple if tuple.length != 3 # Not a tuple return tuple if tuple[/[a-zA-Z0-9]+/] != tuple # Not just letters upper = false upper = true if tuple.chr =~ /[[:upper:]]/ tmp = tuple.downcase offset = KENNY_LETTERS.index(tmp) return tuple if offset.nil? letter = (offset.to_i + 97).chr return letter.upcase if upper letter end |
.to_kenny(str) ⇒ Object
13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/kenny_speak.rb', line 13 def self.to_kenny(str) result = '' str.split('').each do |c| result << if c =~ /[[:alpha:]]/ kenny_from_letter(c) else c end end result end |