class KennySpeak::Kenny

To Follow

Public Class Methods

from_kenny(str) click to toggle source
# File lib/kenny_speak.rb, line 28
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) click to toggle source
# File lib/kenny_speak.rb, line 40
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) click to toggle source
# File lib/kenny_speak.rb, line 56
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) click to toggle source
# File lib/kenny_speak.rb, line 15
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