1.2.0 • Published 10 years ago

countjs v1.2.0

Weekly downloads
3
License
MIT
Repository
github
Last release
10 years ago

CountJS

Build Status

Count items and compare them against a reference

Installation

Simply install it via NPM (npm install countjs) and require it in your code:

var Counter = require('countjs')

var c = new Counter()

Usage

countjs is relatively simple -- just instantiate a counter and keep adding stuff to it:

var c = new Counter()

c.add('a')
c.add('a')
c.add('b')

Then you can get how many items are there in the counter:

c.get('a') // 2
c.get('b') // 1
c.get() // {a: 2, b: 1}

You can also specify a custom quantity to add:

c.add('a', {qty: 3}) // 2
c.get('a') // 3

And create a diff between counters:

var c1 = new Counter({a: 1})
var c2 = new Counter({b: 1})

c1.diff(c2) // {a: 1, b: 0}

You can also use "references": if an item has qty X in the reference, then your counter will not be able to add more than X qty of that item:

var ref = {a: 1, b: 2}
var c = new Counter({}, ref)

c.add('a') // true
c.add('a') // false
c.add('b', {qty: 3}) // false
c.add('b', {qty: 2}) // true
c.add('c') // false

c.get() // {a: 1, b: 2}

You can force the counter to accept the new value:

var ref = {a: 1}
var c = new Counter({}, ref)

c.add('a') // true
c.add('a') // false
c.add('a', {qty: 1, force: true}) // true
c.get() // {a: 2}

When using references, you can get a diff between the current counter and the reference. For example:

var ref = {a: 1}
var c = new Counter({}, ref)

c.add('a', {qty: 2, force: true}) // true
c.add('b', {qty: 3, force: true}) // true

c.diff() // {a: {mine: 2, other: 1, diff: 1}, b: {mine: 3, other: 0, diff: 3}}

Last but not least, you can get a full comparison between counters:

var c1 = new Counter({a: 1, b: 1, d: 3})
var c2 = new Counter({b: 2, c: 1, d: 3})

comparison = c1.compare(c2)
// {
//  a: mine 1, other 0
//  b: mine 1, other 2
//  c: mine 0, other 1
//  d: mine 3, other 3
// }

compare is, basically, a #diff() that also includes same values between counters.

Tests

Just run npm test and welcome to Greenland!

1.2.0

10 years ago

1.1.0

10 years ago

1.0.0

10 years ago

0.2.0

10 years ago

0.1.0

10 years ago

0.0.2

10 years ago