mirror of
https://github.com/flynx/actions.js.git
synced 2025-10-29 18:30:10 +00:00
action aliases done (testing)...
Signed-off-by: Alex A. Naanou <alex.nanou@gmail.com>
This commit is contained in:
parent
7b900cf6c6
commit
56cc7afeb9
48
actions.js
48
actions.js
@ -286,6 +286,39 @@ function(func){
|
|||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
// XXX this is the same as ImageGrid's keyboard.parseActionCall(..), reuse
|
||||||
|
// in a logical manner...
|
||||||
|
var parseStringAction =
|
||||||
|
module.parseStringAction =
|
||||||
|
function(txt){
|
||||||
|
// split off the doc...
|
||||||
|
var c = txt.split('--')
|
||||||
|
var doc = (c[1] || '').trim()
|
||||||
|
// the actual code...
|
||||||
|
c = c[0].split(':')
|
||||||
|
|
||||||
|
// action and no default flag...
|
||||||
|
var action = c[0].trim()
|
||||||
|
var no_default = action.slice(-1) == '!'
|
||||||
|
action = no_default ? action.slice(0, -1) : action
|
||||||
|
|
||||||
|
// parse arguments...
|
||||||
|
var args = JSON.parse('['+(
|
||||||
|
((c[1] || '')
|
||||||
|
.match(/"[^"]*"|'[^']*'|\{[^\}]*\}|\[[^\]]*\]|\d+|\d+\.\d*|null/gm)
|
||||||
|
|| [])
|
||||||
|
.join(','))+']')
|
||||||
|
|
||||||
|
return {
|
||||||
|
action: action,
|
||||||
|
arguments: args,
|
||||||
|
doc: doc,
|
||||||
|
no_default: no_default,
|
||||||
|
stop_propagation: false,
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/*********************************************************************/
|
/*********************************************************************/
|
||||||
|
|
||||||
@ -595,6 +628,8 @@ Action.prototype.chainCall = function(context, inner){
|
|||||||
//---------------------------------------------------------------------
|
//---------------------------------------------------------------------
|
||||||
|
|
||||||
// XXX handle alias args and pass them to the target...
|
// XXX handle alias args and pass them to the target...
|
||||||
|
// XXX who's parsing and what syntax???
|
||||||
|
// - args syntax???
|
||||||
var Alias =
|
var Alias =
|
||||||
module.Alias =
|
module.Alias =
|
||||||
function Alias(alias, target){
|
function Alias(alias, target){
|
||||||
@ -606,17 +641,19 @@ function Alias(alias, target){
|
|||||||
return new Alias(alias, target)
|
return new Alias(alias, target)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
// parse the target...
|
||||||
|
var action = this.parseStringAction(target)
|
||||||
|
|
||||||
var meth = Action(alias, doc, null,
|
var meth = Action(alias, doc, null,
|
||||||
{ alias: target },
|
{ alias: target },
|
||||||
function(){
|
function(){
|
||||||
// XXX parse the target...
|
var args = action.arguments.slice()
|
||||||
// XXX
|
|
||||||
|
|
||||||
// XXX merge args...
|
// XXX merge args...
|
||||||
// XXX
|
// XXX
|
||||||
|
|
||||||
// XXX call the alias...
|
// call the alias...
|
||||||
// XXX
|
return this[action.action].apply(this, args)
|
||||||
})
|
})
|
||||||
meth.__proto__ = this.__proto__
|
meth.__proto__ = this.__proto__
|
||||||
|
|
||||||
@ -672,6 +709,9 @@ module.MetaActions = {
|
|||||||
return this.actions
|
return this.actions
|
||||||
.filter(function(n){ return that[name] instanceof Alias }) },
|
.filter(function(n){ return that[name] instanceof Alias }) },
|
||||||
|
|
||||||
|
// XXX move this to the right spot...
|
||||||
|
parseStringAction: parseStringAction,
|
||||||
|
|
||||||
|
|
||||||
// Get action attribute...
|
// Get action attribute...
|
||||||
//
|
//
|
||||||
|
|||||||
@ -1,6 +1,6 @@
|
|||||||
{
|
{
|
||||||
"name": "ig-actions",
|
"name": "ig-actions",
|
||||||
"version": "3.2.5",
|
"version": "3.3.0",
|
||||||
"description": "",
|
"description": "",
|
||||||
"main": "actions.js",
|
"main": "actions.js",
|
||||||
"scripts": {
|
"scripts": {
|
||||||
|
|||||||
Loading…
x
Reference in New Issue
Block a user