class XapianDb::Repositories::Stemmer

The stemmer is a repository that manages stemmers for the supported languges @author Gernot Kogler

Public Class Methods

stemmer_for(iso_cd) click to toggle source

Get or build the stemmer for a language @param [Symbol, String] iso_cd The iso code for the language (:en, :de …) @return [Xapian::Stem] The Stemmer for this lanugage

   # File lib/xapian_db/repositories/stemmer.rb
16 def stemmer_for(iso_cd)
17   @stemmers ||= {}
18   return nil if iso_cd.nil?
19   key = iso_cd.to_sym
20 
21   # Do we already have a stemmer for this language?
22   return @stemmers[key] unless @stemmers[key].nil?
23 
24   # Do we support this language?
25   unless (LANGUAGE_MAP.keys + [:none]).include?(key)
26     raise ArgumentError.new "Language #{iso_cd} is not supported by XapianDb (remember to use the language iso codes)"
27   end
28 
29   # Let's build the stemmer
30   @stemmers[key] = Xapian::Stem.new(key.to_s)
31 end