UNPKG

noflo-swiss

Version:

Swiss Army Knife for NoFlo Programming

50 lines (36 loc) 1.11 kB
noflo = require("noflo") _ = require("underscore") _s = require("underscore.string") class Underscore extends noflo.Component description: _s.clean "Invoke an Underscore.js function by providing the function name" constructor: -> @stream = true @inPorts = in: new noflo.Port stream: new noflo.Port name: new noflo.Port @outPorts = out: new noflo.Port @inPorts.stream.on "data", (stream) => @stream = stream is "true" @inPorts.name.on "data", (@name) => @inPorts.in.on "connect", => @packets = [] @inPorts.in.on "begingroup", (group) => @outPorts.out.beginGroup group @inPorts.in.on "data", (data) => if @stream if @name? @outPorts.out.send _[@name] data else @outPorts.out.send data else @packets.push(data) @inPorts.in.on "endgroup", (group) => @outPorts.out.endGroup() @inPorts.in.on "disconnect", => unless @stream @outPorts.out.send _[@name].apply _, @packets @outPorts.out.disconnect() exports.getComponent = -> new Underscore