Sha256: ec40c2ec332e92abc23892a71dfddc0bb51a20fe6a5ba85de3ad1f1b3c0b9d55

Contents?: true

Size: 826 Bytes

Versions: 5

Compression:

Stored size: 826 Bytes

Contents

module Indexed
  
  # Registers the indexes held at runtime, for queries.
  #
  class Indexes
    
    attr_reader :indexes, :index_mapping
    
    each_delegate :load_from_cache,
                  :to => :indexes
    
    def initialize
      clear
    end
    
    # Clears the indexes and the mapping.
    #
    def clear
      @indexes       = []
      @index_mapping = {}
    end
    
    # Reloads all indexes, one after another,
    # in the order they were added.
    #
    def reload
      load_from_cache
    end
    
    # Registers an index with the indexes.
    #
    def register index
      self.indexes << index
      self.index_mapping[index.name] = index
    end
    
    # Extracts an index, given its identifier.
    #
    def [] identifier
      index_mapping[identifier.to_sym]
    end
    
  end
  
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
picky-1.5.2 lib/picky/indexed/indexes.rb
picky-1.5.1 lib/picky/indexed/indexes.rb
picky-1.5.0 lib/picky/indexed/indexes.rb
picky-1.4.3 lib/picky/indexed/indexes.rb
picky-1.4.2 lib/picky/indexed/indexes.rb