1.2.4 • Published 7 years ago

score-board v1.2.4

Weekly downloads
1
License
ISC
Repository
-
Last release
7 years ago

Score Board

This module is a generic score board for your browser.

Use this module by cloning the repo

git clone git@github.com:tableflip/score-board.git

or

npm install git://github.com/tableflip/score-board.git

Don't forget to

npm install

Usage

Initiate with team names in an array:

var ScoreBoard = require('score-board')
var scoreBoard = new ScoreBoard(['sharks', 'jets'], localforage, cb)

The ScoreBoard requires a localforage or localforage like object for persisting scores.

Teams are created with a score of 0 you can increment and deduct values asynchronously which looks like this:

scoreBoard.sharks.addScore(9, cb)

This will add 9 points to the shark's score. When it's done your callback function will be executed. Callback functions follow the node callback signiture below. You don't have to pass a callback in if you don't want to.

function (err, result) {
  if (err) throw err
  doStuffWithResult(result)
}

Restoring teams and scores

If you create a ScoreBoard passing null for team names, it'll attempt to reinstate existing teams from storage:

var ScoreBoard = require('score-board')

new ScoreBoard(null, localforage, function (err, scoreBoard) {
  if (err) return console.error('No teams in storage')
  scoreBoard.getTeams(function (err, teams) {
    console.log(teams)
  })
})

API

scoreBoard.getTeams(cb) // callback with ['sharks', 'jets']

// Main score
scoreBoard.sharks.addScore(9, cb) // callback with 9
scoreBoard.sharks.getScore(cb) // callback with 9
scoreBoard.sharks.setScore(10, cb) // callback with 10
scoreBoard.sharks.deductScore(3, cb) // callback with 7

// Bonus points
scoreBoard.sharks.addBonus(9, cb) // callback with 9
scoreBoard.sharks.getBonus(cb) // callback with 9
scoreBoard.sharks.setBonus(10, cb) // callback with 10
scoreBoard.sharks.deductBonus(3, cb) // callback with 7

// Total (score + bonus)
scoreBoard.sharks.getTotal(cb) // callback with 14

Events

Team

Team objects emit the following events:

  • score:add
  • score:deduct
  • score:set
  • bonus:add
  • bonus:deduct
  • bonus:set

Uses tape in the browser for tests. To run the tests type npm test in the root of the project.


A (╯°□°)╯︵TABLEFLIP side project.

1.2.4

7 years ago