Sha256: 8b46399538035ce6dc4086ec8bc56f6bd92bd333e30cf6847b99f58de98a1ac8

Contents?: true

Size: 819 Bytes

Versions: 5

Compression:

Stored size: 819 Bytes

Contents

# Comfortable API convenience class, splits methods to indexes.
#
class IndexBundle # :nodoc:all

  attr_reader :indexes, :index_mapping, :indexing, :indexed

  delegate :reload,
           :load_from_cache,
           :to => :indexed

  delegate :check_caches,
           :find,
           :generate_cache_only,
           :generate_index_only,
           :index,
           :index_for_tests,
           :to => :indexing

  def initialize
    @indexes = []
    @index_mapping = {}
  
    @indexed  = Indexed::Indexes.new
    @indexing = Indexing::Indexes.new
  end

  def register index
    self.indexes << index
    self.index_mapping[index.name] = index
  
    indexing.register index.indexing
    indexed.register  index.indexed
  end

  def [] name
    name = name.to_sym
  
    self.index_mapping[name]
  end

end

Version data entries

5 entries across 5 versions & 1 rubygems

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