Jump To …
READMEsrc / lib / InternalSocket.coffeesrc / lib / Component.coffeesrc / lib / Server.coffeesrc / lib / Fbp.coffeesrc / lib / Graph.coffeesrc / lib / Port.coffeesrc / lib / NoFlo.coffeesrc / lib / Utils.coffeesrc / lib / ArrayPort.coffeesrc / lib / shell.coffeesrc / bin / noflo.coffeesrc / components / GroupByPacket.coffeesrc / components / ParseJson.coffeesrc / components / Merge.coffeesrc / components / ReadDocument.coffeesrc / components / ScrapeHtml.coffeesrc / components / ParseXml.coffeesrc / components / SliceArray.coffeesrc / components / SetPropertyValue.coffeesrc / components / ReadDir.coffeesrc / components / Graph.coffeesrc / components / DuplicateProperty.coffeesrc / components / ReadFileRaw.coffeesrc / components / HTTP / Server.coffeesrc / components / HTTP / BasicAuth.coffeesrc / components / HTTP / SendResponse.coffeesrc / components / HTTP / WriteResponse.coffeesrc / components / HTTP / Profiler.coffeesrc / components / Counter.coffeesrc / components / Template.coffeesrc / components / SetProperty.coffeesrc / components / Replace.coffeesrc / components / WebService / CouchDB / ReadDocument.coffeesrc / components / WebService / CouchDB / GetChanges.coffeesrc / components / WebService / CouchDB / WriteDocument.coffeesrc / components / WebService / CouchDB / OpenDatabase.coffeesrc / components / WebService / CouchDB / ReadDocumentAttachment.coffeesrc / components / WebService / Basecamp / ReadHours.coffeesrc / components / WebService / Basecamp / BasecampComponent.coffeesrc / components / WebService / Basecamp / ConvertToJson.coffeesrc / components / WebService / Basecamp / ReadProjects.coffeesrc / components / WebService / Basecamp / ReadTaskLists.coffeesrc / components / WebService / Basecamp / ReadProjectHours.coffeesrc / components / WebService / Basecamp / ReadTasks.coffeesrc / components / WebService / Basecamp / ReadProject.coffeesrc / components / GetObjectKey.coffeesrc / components / RemoveGroups.coffeesrc / components / UniquePacket.coffeesrc / components / CreateDate.coffeesrc / components / Split.coffeesrc / components / Kick.coffeesrc / components / Output.coffeesrc / components / Callback.coffeesrc / components / GroupByObjectKey.coffeesrc / components / RemoveProperty.coffeesrc / components / MapGroup.coffeesrc / components / WriteFileRaw.coffeesrc / components / UniqueArray.coffeesrc / components / FilterPropertyValue.coffeesrc / components / MapPropertyValue.coffeesrc / components / SplitArray.coffeesrc / components / Stat.coffeesrc / components / FilterProperty.coffeesrc / components / FlattenObject.coffeesrc / components / CreateObject.coffeesrc / components / SplitStr.coffeesrc / components / Base64Encode.coffeesrc / components / ReadFile.coffeesrc / components / MapProperty.coffeesrc / components / PropertiesToObjects.coffeesrc / components / CollectGroups.coffee

SetPropertyValue.coffee

src/components/
noflo = require "noflo"

class SetPropertyValue extends noflo.Component
    constructor: ->
        @property = null
        @value = null
        @data = []

        @inPorts =
            property: new noflo.Port()
            value: new noflo.Port()
            in: new noflo.Port()
        @outPorts =
            out: new noflo.Port()

        @inPorts.property.on "data", (data) =>
            @property = data
            @addProperties() if @value and @data.length
        @inPorts.value.on "data", (data) =>
            @value = data
            @addProperties() if @property and @data.length

        @inPorts.in.on "begingroup", (group) =>
            @outPorts.out.beginGroup group
        @inPorts.in.on "data", (data) =>
            return @addProperty data if @property and @value
            @data.push data
        @inPorts.in.on "endgroup", =>
            @outPorts.out.endGroup()
        @inPorts.in.on "disconnect", =>
            @outPorts.out.disconnect() if @property and @value

    addProperty: (object) ->
        object[@property] = @value
        @outPorts.out.send object

    addProperties: ->
        @addProperty object for object in @data
        @outPorts.out.disconnect()

exports.getComponent = -> new SetPropertyValue

generated Tue Apr 03 2012 15:29:50 GMT+0200 (CEST)
NoFlo