View on GitHub

CollectionUtils

CollectionUtils

language language-top code-size release license discord

Utility methods for collections.

Usage

collection_flatten

Flattenize a collection.

collection_ify

Transform any input into collection. If already a collection return it.

collection_entries

Transform any collection into a collection of entries ie. object with key and value like OB Entries. Key is index, and value is the value at this index.

collection formula

Use Formula with collection functions like map, reduce, etc..

Method Name Formula Parameters Result Examples
c_formula $1, $2, $3, … $0 ie. direct formula result test_c_formula
c_formula_this This.value, $1, $2, … $0 ie. direct formula result test_c_formula_this
c_formula_raw This.value, $1, $2, … This.result or This.accumulator must be modifyed test_c_formula_raw
$col:=New collection:C1472(1;2;3;4)
$result:=$col.map("c_formula";Formula:C1597($1+1))  // ++

Some reducers exemple using Formula

Code Description Examples
bifurcate Splits values into two groups using boolean bitmap test_bifurcate
bifurcateBy Splits values into two groups according to a predicate formula test_bifurcateBy
countBy Groups the elements based on the given formula and returns the count by group test_countBy
groupBy Groups the elements based on the given formula test_groupBy
indexBy Like groupBy, but for when you know your keys are unique. test_indexBy
mostFrequent Returns the most frequent element test_mostFrequent
zipObject Associate collections of keys and values and return an object test_zipObject

Installing

On Unix system open a terminal in your database root folder.

Using latest release

Download the latest release and put it into the Components/ folder

On unix system you could do it using this command

mkdir -p Components && curl -L https://github.com/mesopelagique/CollectionUtils/releases/latest/download/CollectionUtils.4DZ --output Components/CollectionUtils.4dz

Using git submodule

to use source code

git submodule add https://github.com/mesopelagique/CollectionUtils.git Components/CollectionUtils.4dbase

to use binary

git submodule add https://github.com/mesopelagique/CollectionUtils.git Components/CollectionUtils

Open the project, for instance in unix system

open Components/CollectionUtils/Project/CollectionUtils.4DProject

Compile it to Components/ folder. A CollectionUtils.4dbase will be created with inside a CollectionUtils.4dz

Unit tests

Execute allTests, which execute all method prefixed by test_

Result page