diff --git a/README.md b/README.md index 7ef313f..7fb4a62 100644 --- a/README.md +++ b/README.md @@ -59,18 +59,22 @@ A library of JavaScript type extensions, types and type utilities. - [`RegExp.quoteRegExp(..)`](#regexpquoteregexp) - ['Promise'](#promise) - [`Promise.cooperative(..)`](#promisecooperative) - - [`Generator`](#generator) + - [Generator extensions and utilities](#generator-extensions-and-utilities) + - [The basics](#the-basics) + - [`Generator`](#generator) + - [`generator.iter(..)`](#generatoriter) - [Generator instance iteration](#generator-instance-iteration) - [`.map(..)` / `.filter(..)` / `.reduce(..)` / `.flat()`](#generatormap--generatorfilter--generatorreduce--generatorflat) - [`.promise()`](#generatorpromise) - [`.then(..)` / `.catch(..)` / `.finally(..)`](#generatorthen--generatorcatch--generatorfinally) - [`.toArray()`](#generatortoarray) - [Generator constructor iteration workflow](#generator-constructor-iteration-workflow) - - [`Generator.at(..)`](#generatorat) - - [`Generator.slice(..)`](#generatorslice) - - [`Generator.map(..)` / `Generator.filter(..)` / `Generator.reduce(..)` / `Generator.flat()`](#generatormap--generatorfilter--generatorreduce--generatorflat-1) - - [`Generator.toArray()`](#generatortoarray-1) - - [`Generator.then(..)` / `Generator.catch(..)` / `Generator.finally(..)`](#generatorthen--generatorcatch--generatorfinally-1) + - [`Generator.at(..)`](#generatorat) + - [`Generator.shift()` / `Generator.pop()`](#generatorshift--generatorpop) + - [`Generator.slice(..)`](#generatorslice) + - [`Generator.map(..)` / `Generator.filter(..)` / `Generator.reduce(..)` / `Generator.flat()`](#generatormap--generatorfilter--generatorreduce--generatorflat-1) + - [`Generator.toArray()`](#generatortoarray-1) + - [`Generator.then(..)` / `Generator.catch(..)` / `Generator.finally(..)`](#generatorthen--generatorcatch--generatorfinally-1) - [Containers](#containers) - [`containers.UniqueKeyMap()` (`Map`)](#containersuniquekeymap-map) - [`.set(..)`](#unique-key-mapset) @@ -359,7 +363,7 @@ This will return `true` if: Return an iterator/generator from the current array. -This is useful in combination with the Generator extensions XXX +This is mostly useful in combination with the [Generator extensions and utilities](#generator-extensions-and-utilities) ### Abortable `Array` iteration @@ -559,7 +563,18 @@ Default value: `50` -## `Generator` +## Generator extensions and utilities + +```javascript +var generator = require('ig-types/generator') +``` + + +### The basics + +#### `Generator` + +#### `generator.iter(..)` ### Generator instance iteration @@ -576,30 +591,44 @@ Default value: `50` ### Generator constructor iteration workflow ```javascript -var {Generator} = require('ig-types/Generator') - -var sumOdds = Generator +var sumOdds = generator.iter .filter(function(e){ return e % 2 == 1 }) .reduce(function(r, e){ return r + e }, 0) .pop() +console.log(sumOdds([1, 2, 3])) // -> 4 console.log(sumOdds([1, 2, 3, 4, 5, 6, 7])) // -> 16 - ``` -### `Generator.at(..)` +The above code is the same in function to: +```javascript +var sumOdds = function(lst){ + return generator.iter(lst) + .filter(function(e){ + return e % 2 == 1 }) + .reduce(function(r, e){ + return r + e }, 0) + .pop() } -### `Generator.slice(..)` +console.log(sumOdds([1, 2, 3])) // -> 4 +console.log(sumOdds([1, 2, 3, 4, 5, 6, 7])) // -> 16 +``` + +#### `Generator.at(..)` + +#### `Generator.shift()` / `Generator.pop()` + +#### `Generator.slice(..)` This is like `Array`'s `.slice(..)` but does not support negative indexes. -### `Generator.map(..)` / `Generator.filter(..)` / `Generator.reduce(..)` / `Generator.flat()` +#### `Generator.map(..)` / `Generator.filter(..)` / `Generator.reduce(..)` / `Generator.flat()` -### `Generator.toArray()` +#### `Generator.toArray()` -### `Generator.then(..)` / `Generator.catch(..)` / `Generator.finally(..)` +#### `Generator.then(..)` / `Generator.catch(..)` / `Generator.finally(..)` ## Containers diff --git a/Generator.js b/generator.js similarity index 100% rename from Generator.js rename to generator.js diff --git a/main.js b/main.js index c7b8838..64579c5 100644 --- a/main.js +++ b/main.js @@ -21,7 +21,7 @@ module.patchDate = require('./Date').patchDate // Additional types... module.containers = require('./containers') module.runner = require('./runner') -module.Generator = require('./Generator') +module.generator = require('./generator') diff --git a/package.json b/package.json index 2ba2c13..179b0f0 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "ig-types", - "version": "3.4.3", + "version": "3.5.0", "description": "Generic JavaScript types and type extensions...", "main": "main.js", "scripts": {