isg-types
v0.0.2
Published
Free typification built on isg-events module.
Downloads
35
Readme
[email protected]
Free typification built on isg-events module.
Install
- NPM
npm install isg-types
- GIT
git clone https://github.com/isglazunov/types.git
- download from releases
Require
Depends on the modules:
Node.js
var isgEvents = require('isg-events')
var isgTypes = require('isg-types');
var Types = isgTypes(require('underscore'), require('async'), isgEvents(require('underscore'), require('async')));
Browser
<script src="isg-events.js"></script>
<script src="isg-types.js"></script>
var Events = new isgEvents(_, async);
var Types = new isgTypes(_, async, Events);
define
define(['./isg-events.js', './isg-types.js'], function(isgEvents, isgTypes){
var Events = new isgEvents(_, async);
var Types = new isgTypes(_, async, Events);
});
Usage
Server typing
Container type described and methods for their descriptions.
var server = new Types.Server;
or
var MyServer = function(){};
MyServer.prototype = new Types.Server;
var server = new MyServer;
server.describe(name, description[, options]);
Description of the types of events are stored as isg-events
variable in server._isgTypesEvents
.
The options are passed to the method as events.on.
server.describe('user', function(next, client, exports){
exports.isAdmin = function(){
return _.indexOf(client.groups, 'admin') !== -1
};
});
Client typing
The object client
will have a functional initialized types.
var client = new Types.Client;
or
var MyClient = function(){};
MyClient.prototype = new Types.Client;
var client = new MyClient;
client.initialize(name[, callback]);
Starts the initialization of all types that are contained in the array client._isgTypes
.
In other words, starts each by name as the event type in the object server._isgTypesEvents
.
The argument callback
will be executed after the initialization of all types.
client.initialize('user', function(){
console.log('trigger');
});
client.as(name);
Gets exports
specified type.
Allows the use of a functional type of an object of client
.
client.groups = ['admin']
client.as('user').isAdming() // => true;
Versions
0.0.1
The basic functionality.