Class Ferret::Utils::MultiMapper
In: ext/r_utils.c
Parent: Object

Summary

A MultiMapper performs a list of mappings from one string to another. You could of course just use gsub to do this but when you are just mapping strings, this is much faster.

Note that MultiMapper is immutable.

Example

   mapping = {
     ['à','á','â','ã','ä','å','ā','ă']         => 'a',
     'æ'                                       => 'ae',
     ['ď','đ']                                 => 'd',
     ['ç','ć','č','ĉ','ċ']                     => 'c',
     ['è','é','ê','ë','ē','ę','ě','ĕ','ė',]    => 'e',
     ['ƒ']                                     => 'f',
     ['ĝ','ğ','ġ','ģ']                         => 'g',
     ['ĥ','ħ']                                 => 'h',
     ['ì','ì','í','î','ï','ī','ĩ','ĭ']         => 'i',
     ['į','ı','ij','ĵ']                         => 'j',
     ['ķ','ĸ']                                 => 'k',
     ['ł','ľ','ĺ','ļ','ŀ']                     => 'l',
     ['ñ','ń','ň','ņ','ʼn','ŋ']                 => 'n',
     ['ò','ó','ô','õ','ö','ø','ō','ő','ŏ','ŏ'] => 'o',
     ['œ']                                     => 'oek',
     ['ą']                                     => 'q',
     ['ŕ','ř','ŗ']                             => 'r',
     ['ś','š','ş','ŝ','ș']                     => 's',
     ['ť','ţ','ŧ','ț']                         => 't',
     ['ù','ú','û','ü','ū','ů','ű','ŭ','ũ','ų'] => 'u',
     ['ŵ']                                     => 'w',
     ['ý','ÿ','ŷ']                             => 'y',
     ['ž','ż','ź']                             => 'z'
   mapper = MultiMapper.new(mapping)
   mapped_string = mapper.map(string)

Methods

map   new  

Public Class methods

Returns a new multi-mapper object and compiles it for optimization.

Note that MultiMapper is immutable.

Public Instance methods

Performs all the mappings on the string.

[Validate]