757: def add_indexes(indexes)
758: @dir.synchronize do
759: ensure_writer_open()
760: indexes = [indexes].flatten
761: return if indexes.size == 0
762: if indexes[0].is_a?(Index)
763: indexes.delete(self)
764: indexes = indexes.map {|index| index.reader }
765: elsif indexes[0].is_a?(Ferret::Store::Directory)
766: indexes.delete(@dir)
767: indexes = indexes.map {|dir| IndexReader.new(dir) }
768: elsif indexes[0].is_a?(IndexReader)
769: indexes.delete(@reader)
770: else
771: raise ArgumentError, "Unknown index type when trying to merge indexes"
772: end
773: ensure_writer_open
774: @writer.add_readers(indexes)
775: end
776: end