Module: Text::Soundex
- Defined in:
- lib/carat/soundex.rb
Class Method Summary collapse
- .get_code(char) ⇒ Object
- .soundex(str_or_arr) ⇒ Object
-
.soundex_str(str) ⇒ Object
returns nil if the value couldn’t be calculated (empty-string, wrong-character) do not change the parameter “str”.
Class Method Details
.get_code(char) ⇒ Object
71 72 73 |
# File 'lib/carat/soundex.rb', line 71 def get_code(char) char.tr! "AEIOUYWHBPFVCSKGJQXZDTLMNR", "00000000111122222222334556" end |
.soundex(str_or_arr) ⇒ Object
27 28 29 30 31 32 33 34 35 36 |
# File 'lib/carat/soundex.rb', line 27 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) ⇒ Object
returns nil if the value couldn’t be calculated (empty-string, wrong-character) do not change the parameter “str”
45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 |
# File 'lib/carat/soundex.rb', line 45 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 |