Skip to content

Commit

Permalink
Document alt
Browse files Browse the repository at this point in the history
  • Loading branch information
Maurits Rijk committed Apr 12, 2017
1 parent d37a7fb commit 7ff2b9d
Show file tree
Hide file tree
Showing 4 changed files with 60 additions and 9 deletions.
2 changes: 0 additions & 2 deletions docs/SUMMARY.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,7 @@
* [exercise](docs/api/exercise.md)
* [explain](docs/api/explain.md)
* [fdef](docs/api/fdef.md)
* [functions](docs/api/functions.md)
* [gen](docs/api/gen.md)
* [helper](docs/api/helper.md)
* [intIn](docs/api/intIn.md)
* [isValid](docs/api/isValid.md)
* [keys](docs/api/keys.md)
Expand Down
26 changes: 26 additions & 0 deletions docs/api/alt.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
alt
=====

Usage: ```alt(...)```

Returns a spec that accepts null and values satisfying pred.

[Source](https://github.com/mrijk/speculaas/blob/master/lib/alt.js)

Example:

```js
const s = require('speculaas');
const {isBoolean, isString} = require('lodash');

s.def('::bool-or-string', s.alt(':s', isString, ':b', isBoolean));

s.isValid('::bool-or-string', [true]);
// true

s.isValid('::bool-or-string', ['foo']);
// true

s.isValid('::bool-or-string', [1]);
// false
```
26 changes: 26 additions & 0 deletions docs/api/intIn.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,26 @@
intIn
=====

Usage: ```intIn(start end)```

Returns a spec that validates ints in the range from start (inclusive) to end (exclusive).

[Source](https://github.com/mrijk/speculaas/blob/master/lib/intIn.js)

Example:

```js
const s = require('speculaas');

// Define range of a single byte
s.def('::oneByte', s.intIn(0, 256));

s.isValid('::oneByte', 0);
// true

s.isValid('::oneByte', 256);
// false

s.isValid('::oneByte', 512);
// false
```
15 changes: 8 additions & 7 deletions docs/api/nilable.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,21 @@ Usage: ```nilable(pred)```

Returns a spec that accepts null and values satisfying pred.

[Source](https://github.com/mrijk/speculaas/blob/master/lib/nilable.js)

Example:

```js
const s = require('speculaas');

const {isString} = require('lodash');

assert(s.isValid(isString, null));
// throws "AssertionError: false == true"
s.isValid(isString, null);
// false

assert(s.isValid(s.nilable(isString), 'foobar'));
// OK
s.isValid(s.nilable(isString), 'foobar');
// true

assert(s.isValid(s.nilable(isString), null));
// OK
s.isValid(s.nilable(isString), null);
// true

```

0 comments on commit 7ff2b9d

Please sign in to comment.