From 0e75b826a2d48240ecaa471c795280eece732176 Mon Sep 17 00:00:00 2001 From: "Alex A. Naanou" Date: Sun, 15 Nov 2020 03:12:33 +0300 Subject: [PATCH] revised naming in event.js... Signed-off-by: Alex A. Naanou --- event.js | 22 +++++++++++----------- package.json | 2 +- runner.js | 35 +++++++++++++++++++++++++++++++++-- test.js | 25 ++++++++++++++----------- 4 files changed, 59 insertions(+), 25 deletions(-) diff --git a/event.js b/event.js index 8085fd2..99432cb 100644 --- a/event.js +++ b/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() diff --git a/package.json b/package.json index cbf92ee..33a866d 100644 --- a/package.json +++ b/package.json @@ -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": { diff --git a/runner.js b/runner.js index 13a65c5..556766e 100644 --- a/runner.js +++ b/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)) diff --git a/test.js b/test.js index 8d34651..1155f00 100755 --- a/test.js +++ b/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, '.event(..) return value.') assert(call('bareEvent') == 'bareEvent', '.bareEvent(..) return value.') - obj.event(1,2,3) + + // XXX test passing args... + + // XXX test .one(..) / .off(..) // unbind...