UNPKG

6.4 kBMarkdownView Raw
1# GPF Library
2![GPF Logo](http://arnaudbuchholz.github.io/gpf/gpf_320x200.svg)
3
4[![Built with Grunt](https://cdn.gruntjs.com/builtwith.png)](http://gruntjs.com/)
5
6A multi-purpose JavaScript library created and maintained by
7[Arnaud Buchholz](http://gpf-js.blogspot.com/).
8
9[![NPM](https://nodei.co/npm/gpf-js.png?downloads=true&&downloadRank=true&stars=true)](https://nodei.co/npm/gpf-js/)
10[![NPM](https://nodei.co/npm-dl/gpf-js.png?months=3&height=3)](https://nodei.co/npm/gpf-js/)
11
12## Features
13
14* Provides a common scripting layer for several hosts
15([cscript/wscript](http://technet.microsoft.com/en-us/library/bb490887.aspx),
16[NodeJS](http://nodejs.org/), [Rhino](https://developer.mozilla.org/en-US/docs/Mozilla/Projects/Rhino),
17[PhantomJS](http://phantomjs.org/), most *recent* browsers)
18* Namespace and class system
19* Interface based
20* Asynchronous streams
21* Modularization helper
22* Self-Tested
23
24This library is developed in conjunction with a
25[blog](http://gpf-js.blogspot.com/) where the concepts and algorithms are
26documented and explained.
27
28## Metrics
29
30This part is automatically updated upon a successful build:
31* Code coverage is based on NodeJS execution, ignored parts are mostly relevant of other hosts
32* The [maintainability](https://arnaudbuchholz.github.io/gpf/0.1.5/plato/index.html) is based
33on [plato evaluation](http://blogs.msdn.com/b/codeanalysis/archive/2007/11/20/
34maintainability-index-range-and-meaning.aspx)
35
36**SME** stands for **s**ource **m**inimal **e**xpectation.
37
38Metric name | average | total | SME | comment
39------ | ----- | ----- | ----- | -----
40Statements coverage|100%||90%|*0.64% ignored*
41Branches coverage|100%||90%|*1.61% ignored*
42Functions coverage|100%||90%|*1.17% ignored*
43Maintainability|82.07||70|
44Number of tests||669||*pending: 0, duration: 545ms*
45Number of sources||90||
46Lines of code|96|8652||
47
48## Setup
49
50* Clone repository
51* install [grunt](http://gruntjs.com/)
52* at the root of the cloned repository: `npm install`, then `grunt`
53
54## Testing
55
56See [TESTME.md](https://github.com/ArnaudBuchholz/gpf-js/blob/master/doc/tutorials/TESTME.md)
57
58## Versions
59
60Version | Label | Release | Debug | Plato
61------ | ----- | ----- | ----- | -----
62[0.1.5](https://github.com/ArnaudBuchholz/gpf-js/tree/v0.1.5) / [doc](https://arnaudbuchholz.github.io/gpf/0.1.5/doc/index.html) | The new core | [lib](https://arnaudbuchholz.github.io/gpf/0.1.5/gpf.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?release=0.1.5) | [lib](https://arnaudbuchholz.github.io/gpf/0.1.5/gpf-debug.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?debug=0.1.5) | [plato](https://arnaudbuchholz.github.io/gpf/0.1.5/plato/index.html)
63[0.1.6](https://github.com/ArnaudBuchholz/gpf-js/tree/v0.1.6) / [doc](https://arnaudbuchholz.github.io/gpf/0.1.6/doc/index.html) | gpf.define | [lib](https://arnaudbuchholz.github.io/gpf/0.1.6/gpf.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?release=0.1.6) | [lib](https://arnaudbuchholz.github.io/gpf/0.1.6/gpf-debug.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?debug=0.1.6) | [plato](https://arnaudbuchholz.github.io/gpf/0.1.6/plato/index.html)
64[0.1.7](https://github.com/ArnaudBuchholz/gpf-js/tree/v0.1.7) / [doc](https://arnaudbuchholz.github.io/gpf/0.1.7/doc/index.html) | Securing gpf.define | [lib](https://arnaudbuchholz.github.io/gpf/0.1.7/gpf.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?release=0.1.7) | [lib](https://arnaudbuchholz.github.io/gpf/0.1.7/gpf-debug.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?debug=0.1.7) | [plato](https://arnaudbuchholz.github.io/gpf/0.1.7/plato/index.html)
65[0.1.8](https://github.com/ArnaudBuchholz/gpf-js/tree/v0.1.8) / [doc](https://arnaudbuchholz.github.io/gpf/0.1.8/doc/index.html) | Interfaces | [lib](https://arnaudbuchholz.github.io/gpf/0.1.8/gpf.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?release=0.1.8) | [lib](https://arnaudbuchholz.github.io/gpf/0.1.8/gpf-debug.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?debug=0.1.8) | [plato](https://arnaudbuchholz.github.io/gpf/0.1.8/plato/index.html)
66[0.1.9](https://github.com/ArnaudBuchholz/gpf-js/tree/v0.1.9) / [doc](https://arnaudbuchholz.github.io/gpf/0.1.9/doc/index.html) | Records files | [lib](https://arnaudbuchholz.github.io/gpf/0.1.9/gpf.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?release=0.1.9) | [lib](https://arnaudbuchholz.github.io/gpf/0.1.9/gpf-debug.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?debug=0.1.9) | [plato](https://arnaudbuchholz.github.io/gpf/0.1.9/plato/index.html)
67[0.2.1](https://github.com/ArnaudBuchholz/gpf-js/tree/v0.2.1) / [doc](https://arnaudbuchholz.github.io/gpf/0.2.1/doc/index.html) | Side project support | [lib](https://arnaudbuchholz.github.io/gpf/0.2.1/gpf.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?release=0.2.1) | [lib](https://arnaudbuchholz.github.io/gpf/0.2.1/gpf-debug.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?debug=0.2.1) | [plato](https://arnaudbuchholz.github.io/gpf/0.2.1/plato/index.html)
68[0.2.2](https://github.com/ArnaudBuchholz/gpf-js/tree/v0.2.2) / [doc](https://arnaudbuchholz.github.io/gpf/0.2.2/doc/index.html) | gpf.require | [lib](https://arnaudbuchholz.github.io/gpf/0.2.2/gpf.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?release=0.2.2) | [lib](https://arnaudbuchholz.github.io/gpf/0.2.2/gpf-debug.js) / [test](https://arnaudbuchholz.github.io/gpf/test.html?debug=0.2.2) | [plato](https://arnaudbuchholz.github.io/gpf/0.2.2/plato/index.html)
69
70## Credits
71
72* Code rewriting based on [esprima](http://esprima.org/) and [escodegen](https://github.com/Constellation/escodegen)
73* Markdown specification inspired from [wikipedia](http://en.wikipedia.org/wiki/Markdown)
74* UTF-8 encode/decode based on [webtoolkit](http://www.webtoolkit.info/)
75* Promise/A+ implementation based on [promise-polyfill](https://github.com/taylorhakes/promise-polyfill)
76* [mocha](http://mochajs.org/) test suite
77* [istanbul](https://github.com/gotwarlost/istanbul) code coverage tool
78* JavaScript task runner: [Grunt](http://gruntjs.com/)
79* Icons from [Hawcons](https://www.iconfinder.com/iconsets/hawcons)
80* Documentation generated from [jsdoc syntax](http://usejsdoc.org/)
81with [grunt-jsdoc](https://github.com/krampstudio/grunt-jsdoc)
82using template from [ink-docstrap](https://www.npmjs.com/package/ink-docstrap)