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

ReadTasks.coffee

src/components/WebService/Basecamp/
noflo = require "noflo"
base = require "./BasecampComponent"

class ReadTasks extends base.BasecampComponent
    constructor: ->
        @tasklist = null

        do @basePortSetup
        @inPorts.tasklist = new noflo.Port()

        @outPorts =
            out: new noflo.Port()

        @inPorts.tasklist.on "data", (data) =>
            @tasklist = data
            do @readTasks if @hostname and @apikey

    readTasks: ->
        @get "/todo_lists/#{@tasklist}/todo_items.xml", (data) =>
            @parseTasks data

    parseTasks: (data) ->
        target = @outPorts.out
        id = "https://#{@hostname}/"
        @parse data, (parsed) ->
            return unless parsed['todo-item']

            target.beginGroup id

            unless toString.call(parsed['todo-item']) is '[object Array]'
                target.send parsed['todo-item']
                target.endGroup()
                return target.disconnect()

            target.send task for task in parsed['todo-item']
            target.endGroup()
            target.disconnect()

exports.getComponent = ->
    new ReadTasks

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