Module: Text::Soundex

### Home Classes Methods

### In Files

- lib/text/soundex.rb

### Methods

- ::get_code
- ::soundex
- ::soundex_str

### Class/Module Index

Quicksearch

- Text
- Text::Levenshtein
- Text::Metaphone
- Text::PorterStemming
- Text::Soundex

No matching classes.

# Text::Soundex

### Public Class Methods

get_code(char) click to toggle source

    # File lib/text/soundex.rb, line 55
    def get_code(char)
      char.tr! "AEIOUYWHBPFVCSKGJQXZDTLMNR", "00000000111122222222334556"
    end

soundex(str_or_arr) click to toggle source

    # File lib/text/soundex.rb, line 11
    def soundex(str_or_arr)
      case str_or_arr
      when String
        soundex_str(str_or_arr)
      when Array
        str_or_arr.collect{|ele| soundex_str(ele)}
      else
        nil
      end
    end

soundex_str(str) click to toggle source

returns nil if the value couldn't be calculated (empty-string, wrong-character) do not change the parameter "str"

    # File lib/text/soundex.rb, line 29
    def soundex_str(str)
      return nil if str.empty?

      str = str.upcase
      last_code = get_code(str[0,1])
      soundex_code = str[0,1]

      for index in 1...(str.size) do
        return soundex_code if soundex_code.size == 4

        code = get_code(str[index,1])

        if code == "0" then
          last_code = nil
        elsif code == nil then
          return nil
        elsif code != last_code then
          soundex_code += code
          last_code = code
        end
      end # for

      return soundex_code + "000"[0,4-soundex_code.size]
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.