Sha256: ea2a1ee7c8c35cedf46ac80ac684775b7c70e2606678718a0e6785c1d08a1f2a

Contents?: true

Size: 1.01 KB

Versions: 68

Compression:

Stored size: 1.01 KB

Contents

# encoding: utf-8

module XapianDb
  module Repositories

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

      class << self

        # 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
        def stemmer_for(iso_cd)
          @stemmers ||= {}
          return nil if iso_cd.nil?
          key = iso_cd.to_sym

          # Do we already have a stemmer for this language?
          return @stemmers[key] unless @stemmers[key].nil?

          # Do we support this language?
          unless (LANGUAGE_MAP.keys + [:none]).include?(key)
            raise ArgumentError.new "Language #{iso_cd} is not supported by XapianDb (remember to use the language iso codes)"
          end

          # Let's build the stemmer
          @stemmers[key] = Xapian::Stem.new(key.to_s)
        end

      end

    end

  end
end

Version data entries

68 entries across 68 versions & 1 rubygems

Version Path
xapian_db-1.3.15 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.14 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.13 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.12 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.11 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.10 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.9 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.8 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.7.4 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.7.3 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.7.2 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.7.1 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.7 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.5.4 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.5.3 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.5.2 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.5.1 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.5 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.4 lib/xapian_db/repositories/stemmer.rb
xapian_db-1.3.3.1 lib/xapian_db/repositories/stemmer.rb