easybib/generator-processes

This package is abandoned and no longer maintained. No replacement package was suggested.

A collection of processes for iterators

This package's canonical repository appears to be gone and the package has been frozen as a result. Email us for help if needed.

Maintainers

👁 naderman

Package info

github.com/easybiblabs/generator-processes

pkg:composer/easybib/generator-processes

Statistics

Installs: 340

Dependents: 0

Suggesters: 0

Stars: 2

Open Issues: 0

1.1.3 2014-09-26 12:24 UTC

Requires

Requires (Dev)

Suggests

Provides

None

Conflicts

None

Replaces

None

BSD-2-Clause 118537b0a678b055d175b3ed27ff880fecf0c3e3

generatoriteratorprocesselasticaelasticsearchfunctional

This package is not auto-updated.

Last update: 2026-03-10 14:19:28 UTC


README

A collection of processes operating on iterators, usually implemented as generators

👁 Build Status

Processes

All processes are callables which operate on an input traversable (typically an iterator) and return an iterator.

Bulk adding Elastica documents

\EasyBib\Process\Elastica::write uses Elastica to bulk write arrays of documents to Elasticsearch using an Elastica type. You may use Elastica::bindWrite($type) to retrieve a method which accepts only an iterator of document sets.

use Easybib\Process\Elastica;

$documentGroups = [
 [$doc1, $doc2, $doc3],
 [$doc4, $doc5],
];

$outputIterator = Elastica::write($elasticaType, $documentGroups);
// equivalent to
$write = Elastica::bindWrite($elasticaType);
$outputIterator = $write($documentGroups);

// $documentGroups == iterator_to_array($outputIterator);

Searching Elastica documents

EasyBib\Process\Elastica::search uses Elastica to search for a set of documents matching a given search query. You may use Elastica::bindSearch($type, $limit) to retrieve a method which accepts only a search query string and an initial search offset.

use Easybib\Process\Elastica;

$iterator = Elastica::search($elasticaIndex, 100, $keywords, 0);
// equivalent to
$search = Elastica::bindSearch($elasticaIndex, 100);
$iterator = $search($keywords, 0);

Bulkify Transformation

\EasyBib\Process\Transform::bulkify aggregates the input iterator into arrays.

use Easybib\Process\Transform;

$items = [1, 2, 3, 4];

$outputIterator = Transform::bulkify(2, $items);
// equivalent to
$bulkify = Transform::bindBulkify(2);
$outputIterator = $bulkify($items);

// [[1, 2], [3, 4]] == iterator_to_array($outputIterator)

Unbulkify Transformation

Flattens the input by a single level, thus reversing a bulkify operation.

use Easybib\Process\Transform;

$bulks = [[1, 2], [3, 4], [5, ['some', 'array']]]];

$outputIterator = Transform::unbulkify($bulks);

// [1, 2, 3, 4, 5, ['some', 'array']] == iterator_to_array($outputIterator)