Sha256: d51c67ddf96d46640d7507498a0887eef7ed2aa7f88f3093cf6577e20afb1abd
Contents?: true
Size: 1.61 KB
Versions: 5
Compression:
Stored size: 1.61 KB
Contents
module Picky # Holds all indexes and provides operations # for extracting and working on them. # # Forwards a number of operations to the # indexes. # class Indexes attr_reader :indexes, :index_mapping forward :size, :each, :to => :indexes each_forward :reindex, :to => :indexes instance_forward :clear, :clear_indexes, :register, :reindex, :[], :to_s, :size, :each, :each_category def initialize *indexes clear_indexes indexes.each { |index| register index } end # Return the Indexes instance. # def self.instance @instance ||= new end def self.identifier name end # Clears the indexes and the mapping. # def clear_indexes @indexes = [] @index_mapping = {} end # Registers an index with the indexes. # def register index self.indexes << index self.index_mapping[index.name] = index end def self.register index self.instance.register index end # Extracts an index, given its identifier. # def [] identifier index_name = identifier.intern index_mapping[index_name] || raise_not_found(index_name) end # Raises a not found for the index. # def raise_not_found index_name raise %Q{Index "#{index_name}" not found. Possible indexes: "#{indexes.map(&:name).join('", "')}".} end # # def to_s indexes.indented_to_s end end end
Version data entries
5 entries across 5 versions & 1 rubygems
Version | Path |
---|---|
picky-4.12.6 | lib/picky/indexes.rb |
picky-4.12.5 | lib/picky/indexes.rb |
picky-4.12.4 | lib/picky/indexes.rb |
picky-4.12.3 | lib/picky/indexes.rb |
picky-4.12.2 | lib/picky/indexes.rb |