mirror of
https://github.com/flynx/types.js.git
synced 2025-10-29 02:20:07 +00:00
revised naming in event.js...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
5c518593b7
commit
0e75b826a2
22
event.js
22
event.js
@ -25,10 +25,10 @@ var object = require('ig-object')
|
||||
// calling it will trigger the handlers either after the user func(..)
|
||||
// return or when the user calles the passed handler(..) function.
|
||||
//
|
||||
// bareEventMethod(name[, options])
|
||||
// Eventfull(name[, options])
|
||||
// -> method
|
||||
//
|
||||
// bareEventMethod(name, func[, options])
|
||||
// Eventfull(name, func[, options])
|
||||
// -> method
|
||||
//
|
||||
//
|
||||
@ -42,8 +42,8 @@ var object = require('ig-object')
|
||||
//
|
||||
// NOTE: calling handle(false) will exiplicitly disable calling the
|
||||
// handlers for that call...
|
||||
var bareEventMethod =
|
||||
module.bareEventMethod =
|
||||
var Eventfull =
|
||||
module.Eventfull =
|
||||
function(name, func, options={}){
|
||||
var hidden
|
||||
var method
|
||||
@ -131,13 +131,13 @@ function(name, func, options={}){
|
||||
}) }
|
||||
|
||||
|
||||
// Extends bareEventMethod(..) adding ability to bind events via the
|
||||
// Extends Eventfull(..) adding ability to bind events via the
|
||||
// resulting method directly by passing it a function...
|
||||
//
|
||||
// eventMethod(name[, options])
|
||||
// Event(name[, options])
|
||||
// -> method
|
||||
//
|
||||
// eventMethod(name, func[, options])
|
||||
// Event(name, func[, options])
|
||||
// -> method
|
||||
//
|
||||
//
|
||||
@ -157,8 +157,8 @@ function(name, func, options={}){
|
||||
// func(handle, ...args)
|
||||
//
|
||||
//
|
||||
var eventMethod =
|
||||
module.eventMethod =
|
||||
var Event =
|
||||
module.Event =
|
||||
function(name, func, options={}){
|
||||
var method
|
||||
options = typeof(func) != 'function' ?
|
||||
@ -166,7 +166,7 @@ function(name, func, options={}){
|
||||
: options
|
||||
|
||||
return Object.assign(
|
||||
method = bareEventMethod(name,
|
||||
method = Eventfull(name,
|
||||
function(handle, ...args){
|
||||
// add handler...
|
||||
// XXX handle handler tags...
|
||||
@ -182,7 +182,7 @@ function(name, func, options={}){
|
||||
options),
|
||||
{
|
||||
__event__: 'full',
|
||||
// NOTE: this is a copy of bareEventMethod's .toString() as we
|
||||
// NOTE: this is a copy of Eventfull's .toString() as we
|
||||
// still need to base the doc on the user's func...
|
||||
toString: function(){
|
||||
return func.toString()
|
||||
|
||||
@ -1,6 +1,6 @@
|
||||
{
|
||||
"name": "ig-types",
|
||||
"version": "3.6.2",
|
||||
"version": "3.7.0",
|
||||
"description": "Generic JavaScript types and type extensions...",
|
||||
"main": "main.js",
|
||||
"scripts": {
|
||||
|
||||
35
runner.js
35
runner.js
@ -44,7 +44,7 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
run: function(...tasks){
|
||||
return this({ state: 'running' }, ...tasks) },
|
||||
|
||||
}, {
|
||||
}, object.mixinFlat({
|
||||
// config...
|
||||
//
|
||||
pool_size: 8,
|
||||
@ -65,6 +65,7 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
this.stop() } },
|
||||
|
||||
|
||||
/* XXX LEGACY...
|
||||
// event API...
|
||||
//
|
||||
// XXX mignt be good to make this a generic mixin...
|
||||
@ -122,6 +123,7 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
return func === handler
|
||||
|| func.original_handler === handler }))
|
||||
return this },
|
||||
//*/
|
||||
|
||||
|
||||
// events/actions - state transitions...
|
||||
@ -131,6 +133,7 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
// .trigger('start')
|
||||
// .state = 'running'
|
||||
// and similar for 'stop'...
|
||||
/*/ XXX ASAP migrate to event.js...
|
||||
start: makeActionEvent(function(handler){
|
||||
// register handler...
|
||||
if(typeof(handler) == 'function'){
|
||||
@ -143,6 +146,7 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
this.trigger('start!')
|
||||
this._run()
|
||||
return this }),
|
||||
// XXX ASAP migrate to event.js...
|
||||
stop: makeActionEvent(function(handler){
|
||||
// register handler...
|
||||
if(typeof(handler) == 'function'){
|
||||
@ -154,25 +158,52 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
this.__state = 'stopped'
|
||||
this.trigger('stop!')
|
||||
return this }),
|
||||
/*/
|
||||
start: events.Event('start', function(handle){
|
||||
// can't start while running...
|
||||
if(this.state == 'running'){
|
||||
handle(false)
|
||||
return this }
|
||||
this.__state = 'running'
|
||||
this._run() }),
|
||||
stop: events.Event('stop', function(handle){
|
||||
// can't stop while not running...
|
||||
if(this.state == 'stopped'){
|
||||
handle(false)
|
||||
return this }
|
||||
this.__state = 'stopped'
|
||||
return this }),
|
||||
//*/
|
||||
|
||||
|
||||
// events/actions - state transitions...
|
||||
//
|
||||
/*/ XXX ASAP migrate to event.js...
|
||||
clear: makeActionEvent(function(handler){
|
||||
if(typeof(handler) == 'function'){
|
||||
return this.on('clear', handler) }
|
||||
this.splice(0, this.length)
|
||||
return this }),
|
||||
/*/
|
||||
clear: events.Event(function(handler){
|
||||
this.splice(0, this.length) }),
|
||||
//*/
|
||||
|
||||
|
||||
// events...
|
||||
//
|
||||
/* XXX LEGACY...
|
||||
taskStarting: makeEvent(function(func){
|
||||
return this.on('taskStarting', ...arguments) }),
|
||||
taskCompleted: makeEvent(function(func){
|
||||
return this.on('taskCompleted', ...arguments) }),
|
||||
queueEmpty: makeEvent(function(func){
|
||||
return this.on('queueEmpty', ...arguments) }),
|
||||
/*/
|
||||
taskStarting: events.Event('taskStarting'),
|
||||
taskCompleted: events.Event('taskCompleted'),
|
||||
queueEmpty: events.Event('queueEmpty'),
|
||||
//*/
|
||||
|
||||
// helpers...
|
||||
//
|
||||
@ -275,7 +306,7 @@ module.Queue = object.Constructor('Queue', Array, {
|
||||
&& typeof(this[0].finally) != 'function'){
|
||||
Object.assign(this, this.shift()) }
|
||||
this._run() },
|
||||
})
|
||||
}, events.EventMixin))
|
||||
|
||||
|
||||
|
||||
|
||||
25
test.js
25
test.js
@ -381,24 +381,24 @@ Events.cases({
|
||||
|
||||
// blank events...
|
||||
bareEventBlank: assert(
|
||||
events.bareEventMethod('bareEventBlank'),
|
||||
'.bareEventMethod(..): blank'),
|
||||
events.Eventfull('bareEventBlank'),
|
||||
'.Eventfull(..): blank'),
|
||||
eventBlank: assert(
|
||||
events.eventMethod('eventBlank'),
|
||||
'.eventMethod(..): blank'),
|
||||
events.Event('eventBlank'),
|
||||
'.Event(..): blank'),
|
||||
|
||||
// normal events...
|
||||
bareEvent: assert(events.bareEventMethod('bareEvent',
|
||||
bareEvent: assert(events.Eventfull('bareEvent',
|
||||
function(handle, ...args){
|
||||
called['bareEvent-call'] = true
|
||||
assert(handle(), '.bareEventMethod(..) -> handle(..)')
|
||||
assert(handle(), '.Eventfull(..) -> handle(..)')
|
||||
return 'bareEvent'
|
||||
}), '.bareEventMethod(..)'),
|
||||
event: assert(events.eventMethod('event',
|
||||
}), '.Eventfull(..)'),
|
||||
event: assert(events.Event('event',
|
||||
function(handle, ...args){
|
||||
called['event-call'] = true
|
||||
assert(handle(), '.eventMethod(..) -> handle(..)')
|
||||
}), '.eventMethod(..)'),
|
||||
assert(handle(), '.Event(..) -> handle(..)')
|
||||
}), '.Event(..)'),
|
||||
}, events.EventMixin),
|
||||
'object with event mixin created.')
|
||||
|
||||
@ -461,7 +461,10 @@ Events.cases({
|
||||
assert(call('event') === obj, '<obj-w-events>.event(..) return value.')
|
||||
assert(call('bareEvent') == 'bareEvent', '<obj-w-events>.bareEvent(..) return value.')
|
||||
|
||||
obj.event(1,2,3)
|
||||
|
||||
// XXX test passing args...
|
||||
|
||||
// XXX test .one(..) / .off(..)
|
||||
|
||||
// unbind...
|
||||
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user