Skip to content

Releases: tiny-blocks/collection

v2.3.0

16 Apr 14:27
e7a8a3f

Choose a tag to compare

  • Added Internal\Materialization and refactored EagerPipeline to rely on it for cached terminal access.
  • Expanded/adjusted complexity and evaluation-strategy documentation (Collectible, Pipeline, README).
  • Added test coverage for multi-predicate filtering and reducing over chained operations (eager + lazy).

v2.2.0

16 Apr 01:55
9e810a8

Choose a tag to compare

  • Introduce Collection::createFromClosure() backed by an eager pipeline that materializes the closure result immediately.
  • Move first/isEmpty/last resolution into Pipeline implementations (eager/lazy) and remove the old resolving helpers.
  • Expand README + API docs with evaluation strategy and complexity explanations; add extensive tests and new test models.

v2.1.0

15 Apr 19:48
12a3972

Choose a tag to compare

  • Introduces Collection::createLazyFromClosure() backed by LazyPipeline::fromClosure() for re-iterable lazy sources.
  • Refactors EagerPipeline to memoize materialization and allow repeated iteration when created from single-use iterables (e.g., generators).
  • Updates each() to be a terminal operation returning void, and updates tests + adds new tests for closure/generator reiteration.

v2.0.0

30 Mar 10:43
7ab5f0f

Choose a tag to compare

  • Introduces Pipeline + EagerPipeline/LazyPipeline and refactors Collection to compose operations via pipeline stages.
  • Replaces the previous operation set (LazyOperation/ImmediateOperation) with Transforming\* (pipeline stages) and Resolving\* (terminal helpers).
  • Consolidates/rewrites tests and updates documentation to reflect the new API and extension patterns.

v1.16.0

03 Mar 05:00
99e7d40

Choose a tag to compare

  • Introduces Collectible::merge() and implements it in Collection.
  • Adds a new lazy write operation Internal\Operations\Write\Merge.
  • Adds unit tests and README documentation for merging collections.

v1.15.0

10 Feb 01:10
e32c518

Choose a tag to compare

  • Updates dependencies and remove unused extensions in CI configuration.

v1.14.0

19 Jan 19:07
ce6ed88

Choose a tag to compare

  • Move operation test files to new structure under Internal\Operations\.
  • Update namespaces in test files to reflect new structure.
  • Refactor Slice.php buffered slicing to use SplQueue for efficiency and clarity.
  • Enhance docblocks in Collectible.php with complexity notes and clarify groupBy return type.

v1.13.1

17 Jan 12:29
ccf5e8b

Choose a tag to compare

  • Fixes descending sort to always reverse predicate arguments, ensuring correct order.
  • Adds unit test for sorting collection in descending order using a custom predicate.
  • Updates README formatting for consistency.
  • Refactors joinTo method for improved separator handling.

v1.13.0

16 Jan 12:18
8edeea4

Choose a tag to compare

  • Remove redundant array_first/array_last usage in First.php and Last.php operations.
  • Move test classes to Test\TinyBlocks\Collection namespaces for consistency.
  • Update autoload-dev PSR-4 mapping in composer.json.
  • Bump tiny-blocks/mapper to 1.4.* and add tiny-blocks/currency to require-dev.
  • Update Makefile test-file usage instructions.
  • Adjust imports in test files to reflect namespace changes.

v1.12.0

14 Jan 01:31
cb1bbc0

Choose a tag to compare

  • Bump PHP requirement to 8.5 and update dependencies in composer.json and Docker image.
  • Refactor all closures to use static where possible for performance and clarity.
  • Optimize Filter, First, Last, and Find operations for better lazy evaluation and early termination.
  • Enhance Slice to handle negative lengths and improve memory efficiency.
  • Update CI workflow for artifact-based dependency caching and PHP 8.5.
  • Improve Makefile with help target, colorized output, and updated Docker image.
  • Remove unused phpmd references and update .gitattributes.
  • Update documentation and tests to reflect static closures and new behaviors.