{"bugs":{"url":"http://github.com/killdream/boo/issues"},"dist":{"shasum":"cd38c353503cd6f2764963d95886cd25ab5dc5ea","tarball":"https://registry.npmjs.org/boo/-/boo-2.0.0.tgz","integrity":"sha512-oaSGmnj3mTHH1rnVQ6/sZcaebBbQlziV0dC5qjufujmafXG+UYxA54I8qly90XGDwOt7VPIeUJ7Cu7YlUFumNA==","signatures":[{"sig":"MEQCIEAc4OfaADkGswFds0qeCu1pBYusOM4R3xdBRpE3jwZaAiApdD1y5pa9gXjeXV3V3XzO8Hodx9KdKQSJRLvzr2aYoQ==","keyid":"SHA256:jl3bwswu80PjjokCgh0o2w5c2U4LhQAE57gj9cz1kzA"}]},"main":"./lib/boo.js","name":"boo","_from":".","author":{"name":"Quildreen \"Sorella\" Motta","email":"quildreen@gmail.com"},"readme":"Boo [![Build Status](https://travis-ci.org/killdream/boo.png)](https://travis-ci.org/killdream/boo) ![Dependencies Status](https://david-dm.org/killdream/boo.png)\n===\n\nBoo provides utilities to structure a program by means of prototypical\nobject orientation and object composition, in an easy way. It provides\nyou with inheritance, composition and mixin facilities, all packaged in\na nice API.\n\n    var Animal = boo.Base.derive({\n      name: 'Unknow'\n    \n    , say:\n      function say(thing) {\n        return this.name + ': ' + thing }\n    })\n    \n    var Cat = Animal.derive({\n      withName:\n      function _withName(name) {\n        return this.derive({ name: name }) }\n    })\n    \n    var nyah = Cat.withName('Nyan Cat')\n    nyah.say('Nyan nyan nyan~')\n\n\nInstalling\n----------\n\nWith Node.js and NPM, you can do the easy-modo install:\n\n    $ npm install boo\n    # then require it as usual\n    node> var boo = require('boo')\n\nIn the browser, you have to include the script tag pointing to the\n`boo.js` file:\n\n    <script src=\"/path/to/boo.js\"></script>\n    <script type=\"text/javascript\">\n      // `boo' is in the global scope now\n    </script>\n\n\nPlatform support\n----------------\n\nES3 and beyond!\n\n[![browser support](https://ci.testling.com/killdream/boo.png)](http://ci.testling.com/killdream/boo)\n\n\nTesting\n-------\n\nFor Node, just:\n\n    $ npm test          # (or make test)\n    \n    \nFor the browser:\n\n    $ npm install -g brofist-browser\n    $ make browser-test\n    # Then point your browsers to the URL on yer console.\n\n\nBenchmarks\n----------\n\nThere are a few benchmarks you can run:\n\n```bash\n$ make benchmark\n```\n\n\nLearning\n--------\n\nBoo ships with a [full narrated reference manual][ref], covering the\nconcepts and designs you need to know to use the library effectively.\nYou can either read it online, or locally — from the file \n`docs/build/html/index.html`. \n\nAdditionally, you can read the following introduction to Boo:\n\n- [Yay for sugary JavaScript OO][intro]\n\n\n[ref]: http://boo.readthedocs.org/\n[intro]: http://killdream.github.com/blog/2011/11/for-sugary-object-oriented-js/index.html\n\n\nReference\n---------\n\n### `extend(target, mixins...)`\n\nExtends the target with the provided mixins, using a right-most precedence\nrule.\n\n```hs\nextend: object, mixin... -> object\n```\n\n### `merge(mixins...)`\n\nLike `extend`, but pure.\n\n```hs\nmerge: mixin... -> object\n```\n\n### `derive(proto, mixin...)`\n\nConstructs a new object that inherits from `proto`.\n\n```hs\nderive: object, mixin... -> object\n```\n\n### `Base:make(...)`\n\nInstantiates a new object, and initialises it by calling the `init` method.\n\n```hs\nmake: @object => A... -> this <| object\n```\n\n### `Base:derive(mixin...)`\n\nLike `derive`, but the prototype is the `this` object.\n\n```hs\nderive: @object => mixin... -> this <| object\n```\n\n\nGetting support\n---------------\n\nBoo uses the [Github tracker][] for tracking bugs and new features.\n\n[Github tracker]: https://github.com/Orphoundation/boo/issues\n\n\nLicence\n-------\n\nMIT/X11.\n","licence":"MIT","scripts":{"test":"make test","benchmark":"make benchmark"},"_npmUser":{"name":"killdream","email":"quildreen@gmail.com"},"calliope":{"output":"docs/api","packages":[{"files":["lib/*.js"]}],"copyright":"© 2013 Quildreen \"Sorella\" Motta"},"keywords":["object orientation","oop","mixins","prototypes"],"testling":{"files":"test/tap.js","browsers":["ie/6..latest","chrome/20..latest","firefox/15..latest","safari/latest","opera/11.0..latest","iphone/6","ipad/6","android-browser/4.2"]},"repository":{"url":"http://github.com/killdream/boo.git","type":"git"},"_npmVersion":"1.2.16","description":"Core prototypical primitives for Object Orientation/Composition.","maintainers":[{"name":"killdream","email":"quildreen@gmail.com"}],"contributors":[{"url":"http://killdream.github.com/","name":"Quildreen \"Sorella\" Motta"}],"readmeFilename":"README.md","devDependencies":{"brofist":"~0.2.3","benchmark":"~1.0.0","brofist-tap":"~0.1.0","brofist-minimal":"~0.1.1"},"_id":"boo@2.0.0","version":"2.0.0"}