Get unlimited public & private packages + package-based permissions with npm Pro.Get started »

counter-hash-js

0.2.0 • Public • Published

counter-hash-js

Purpose

A Node.js library implementing a simple CounterHash class, for incrementing and decrementing keys.

Often it is useful to traverse some data structure, accumulating conters in the process. Class CounterHash provides functions to increment, decrement, add, subtract, and obtain the sum, values, and sorted-keys of the hash.

Examples

Setup

Add counter-hash-js to your project or package.json file:

npm install counter-hash-js

Require counter-hash-js in your code:

CounterHash  = require("counter-hash-js").CounterHash

Note: this library is now implemented in TypeScript, but these examples are in CoffeeScript. For users of TypeScript, see the declaration file for this library at:

https://github.com/cjoakim/counter-hash-js/blob/master/lib/counter-hash-js.d.ts

CounterHash

Methods value(key), increment(key), decrement(key), add(key, n), subtract(key, n), value(key), sum(), sorted_keys(), and sorted_tuples() are available.

h = new CounterHash()
h.increment('a')
h.increment('a')
h.increment('b')
h.decrement('q')
h.increment('z')

h.sum()       -> 3

h.value('a')  -> 2
h.value('x')  -> undefined

h.add('x', 100)
h.subtract('x', 7)

h.value('x')  -> 93

h.sorted_keys() -> [ 'a', 'b', 'q', 'x', 'z' ]

h.sorted_tuples() -> [ ['a', 2], ['b', 1],['q', -1], ['z', 1] ]

CounterHash.VERSION  -> '0.2.0'

Test Results

Running "mocha_istanbul:coverage" (mocha_istanbul) task

  CounterHash
    read_file_sync
      ✓ should have a constructor
      ✓ should have a VERSION
      ✓ should implement methods: increment, decrement, and sum
      ✓ should implement methods: add and subtract
      ✓ should implement method: values
      ✓ should implement method: sorted_keys
      ✓ should implement method: sorted_tuples


  7 passing (10ms)

=============================================================================
Writing coverage object [/Users/cjoakim/github/counter-hash-js/coverage/coverage.json]
Writing coverage reports at [/Users/cjoakim/github/counter-hash-js/coverage]
=============================================================================

=============================== Coverage summary ===============================
Statements   : 100% ( 54/54 )
Branches     : 88.89% ( 16/18 )
Functions    : 100% ( 11/11 )
Lines        : 100% ( 54/54 )
================================================================================

Release History

  • 2015-05-02   v0.2.0  Implemented in TypeScript; added file 'counter-hash-js.d.ts'.
  • 2015-02-20   v0.1.2  Added method 'sorted_tuples()'.
  • 2015-01-13   v0.1.1  Docs updated.
  • 2015-01-13   v0.1.0  Initial working version.
  • 2015-01-13   v0.0.2  alpha 2
  • 2015-01-13   v0.0.1  alpha 1

Install

npm i counter-hash-js

DownloadsWeekly Downloads

0

Version

0.2.0

License

none

Last publish

Collaborators

  • avatar