Skip to content
This repository has been archived by the owner on May 23, 2022. It is now read-only.

Latest commit

 

History

History
63 lines (46 loc) · 1.41 KB

README.md

File metadata and controls

63 lines (46 loc) · 1.41 KB

Proto*

Build Status Dependencies Status NPM version experimental

Proxy-based Self-and-Slate-inspired slow-as-fuck multiple-delegation for ECMAScript6-aka-JavaScript

Example

var Proto = require('proto-star')

var Healthy = Proto.cloneWith({
  move: function(direction) {
    this.x += direction * 2;
  }
})

var Hurt = Proto.cloneWith({
  move: function(direction) {
    this.x += direction
  }
})

var Shark = Proto.cloneWith({
  left: function() {
    this.move(-1)
    return this
  }
, right: function(){
    this.move(1)
    return this
  }
})

var bob = Shark.cloneWith({ x: 10 })
bob.addDelegation(Healthy)
bob.left() // { x: 8 }
bob.addDelegation(Hurt)
bob.left() // { x: 7 }
bob.removeDelegation(Hurt)
bob.left() // { x: 5 }

Installing

$ npm install proto-star

Platform support

You'll need Node 0.11+ and run stuff with the --harmony flag.

Licence

Copyright (c) 2013 Quildreen Motta.

Released under the MIT licence.