Files

Class/Module Index [+]

Quicksearch

Rufus::Mnemo

Rufus::Mnemo

This module contains methods for converting plain integers (base 10) into words that are easier to read and remember.

For example, the equivalent of the (base 10) integer 1329724967 is “takeshimaya”.

Mnemo uses 70 of the syllables of the Japanese language, it is thus a base 10 to base 70 converter.

Mnemo is meant to be used for generating human readable (or more easily rememberable) identifiers. Its first usage is within the OpenWFEru Ruby workflow and bpm engine for generating 'kawaii' business process instance ids.

require 'rubygems'
require 'rufus/mnemo'

s = Rufus::Mnemo::from_integer 125704

puts s
  # => 'karasu'

i = Rufus::Mnemo::to_integer s
  # => 125704

Mnemo from the command line

You can use Mnemo directly from the command line :

$ ruby mnemo.rb kotoba
141260
$ ruby mnemo.rb rubi
3432
$ ruby mnemo.rb 2455
nada

might be useful when used from some scripts.

Public Class Methods

from_integer(integer) click to toggle source

Turns the given integer into a Mnemo word.

# File lib/rufus/mnemo.rb, line 104
def Mnemo.from_integer (integer)

  return "#{NEG}#{from_integer(-integer)}" if integer < 0

  s = from_i(integer)
  to_special(s)
end
is_mnemo_word(string) click to toggle source

Returns if the string is a Mnemo word, like “fugu” or “toriyamanobashi”.

# File lib/rufus/mnemo.rb, line 146
def Mnemo.is_mnemo_word (string)

  begin
    to_integer(string)
    true
  rescue #Exception => e
    false
  end
end
split(word) click to toggle source

Given a Mnemo ‘word’, will split into its list of syllables. For example, “tsunashima” will be split into

“tsu”, “na”, “shi”, “ma”
# File lib/rufus/mnemo.rb, line 135
def Mnemo.split (word)

  word = from_special(word)
  a = string_split(word)

  a_to_special(a)
end
to_integer(string) click to toggle source

Turns the given Mnemo word to its equivalent integer.

# File lib/rufus/mnemo.rb, line 114
def Mnemo.to_integer (string)

  s = from_special(string)
  to_i(s)
end
to_number(syllable) click to toggle source

Turns a simple syllable into the equivalent number. For example Mnemo::to_number(“fu”) will yield 19.

# File lib/rufus/mnemo.rb, line 123
def Mnemo.to_number (syllable)

  SYL.each_with_index do |s, index|
    return index if syllable == s
  end
  raise "did not find syllable '#{syllable}'"
end

[Validate]

Generated with the Darkfish Rdoc Generator 2.