'Alows to get all records for given index
:param index_name: Index to perform the operation
:param limit: defines limit for query
:param offset: defines offset (how many records from start it will ignore)
:param with_doc: if ``True`` data from **id** index will be included in output
:param with_storage: if ``True`` data from index storage will be included, otherwise just metadata'

def all(self, index_name, limit=(-1), offset=0, with_doc=False, with_storage=True):

    try:
        ind = self.indexes_names[index_name]
    except KeyError:
        self.__not_opened()
        raise IndexNotFoundException(("Index    `%s`    doesn't    exists" % index_name))
    storage = ind.storage
    gen = ind.all(limit, offset)
    while True:
        try:
            (doc_id, unk, start, size, status) = gen.next()
        except StopIteration:
            break
        else:
            if (index_name == 'id'):
                if (with_storage and size):
                    data = storage.get(start, size, status)
                else:
                    data = {}
                data['_id'] = doc_id
                data['_rev'] = unk
            else:
                data = {}
                if (with_storage and size):
                    data['value'] = storage.get(start, size, status)
                data['key'] = unk
                data['_id'] = doc_id
                if with_doc:
                    doc = self.get('id', doc_id, False)
                    data['doc'] = doc
            (yield data)
