Sha256: 0ee6ab16ff170d6fffdfe57562aa3313127298813094d826b2f7e1b0875d438b

Contents?: true

Size: 1.22 KB

Versions: 6

Compression:

Stored size: 1.22 KB

Contents

module Picky

  class Category

    # Removes an indexed object with the
    # given id.
    #
    def remove id
      id = id.send key_format
      exact.remove id
      partial.remove id
    end

    # Adds and indexes this category of the
    # given object.
    #
    def add object, where = :unshift
      tokens, _ = tokenizer.tokenize object.send(from)
      add_tokenized object.id, tokens, where
    end

    # Removes the object's id, and then
    # adds it again.
    #
    def replace object, where = :unshift
      remove object.id
      add object, where
    end

    # For the given id, adds the list of
    # strings to the index for the given id.
    #
    def add_tokenized id, tokens, where = :unshift
      tokens.each { |text| add_tokenized_token id, text, where }
    end

    #
    #
    def add_tokenized_token id, text, where = :unshift
      return unless text
      id = id.send key_format # TODO Speed this up!

      # text = text.to_sym if @symbols # TODO Symbols.
      exact.add id, text, where
      partial.add_partialized id, text, where
    end

    # Clears the realtime mapping.
    #
    def clear_realtime_mapping
      exact.clear_realtime_mapping
      partial.clear_realtime_mapping
    end

  end

end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
picky-3.6.6 lib/picky/category_realtime.rb
picky-3.6.4 lib/picky/category_realtime.rb
picky-3.6.3 lib/picky/category_realtime.rb
picky-3.6.2 lib/picky/category_realtime.rb
picky-3.6.1 lib/picky/category_realtime.rb
picky-3.6.0 lib/picky/category_realtime.rb