# window.onTrue = (object, path, callback) -> # if object.get(path) # callback() # else # observer = -> # object.removeObserver path, observer # callback() # object.addObserver path, observer # # window.onceLoaded = -> # objects = Array.prototype.slice.apply(arguments) # callback = objects.pop() # # # sadly Ember.Enumerable.compact does not remove undefined values # objects = ((object || null) for object in objects).compact() # object = objects.shift() # # if object # path = if Ember.isArray(object) then 'firstObject.isLoaded' else 'isLoaded' # onTrue object, path, -> # if objects.length == 0 # callback(object) # else # onceLoaded.apply(objects + [callback]) # else # callback object