window.Transponder = buildEvent: (array) -> eventType = array.filter (val) -> typeof val isnt 'undefined' and val isnt null eventType.join(':') init: -> Transponder.eh = new Transponder.Error() Transponder.req = new Transponder.Request() Transponder.res = new Transponder.Response() buildServicesFor: (services) -> serviceEvents = [] for _, service of services serviceEvents.push("#{service::module}:services:#{service::serviceName}") $(document).on serviceEvents.join(' '), (e, message = {}) -> [module, _, service] = e.type.split(':') $(".#{service}:not(#{service}_active)").each (i, f) -> for _, fun of services if fun::serviceName is service and fun::module is module new fun(this, message)