# private function require = (lib) -> return new Promise (r, e) -> return r() if window.libraries[lib] $.getScript window.myuri + lib .done (d) -> window.libraries[lib] = true r() .fail (m, s) -> e(m, s) class BaseObject constructor: (@name) -> ready: () -> me = @ return new Promise (r, e) -> me.resolveDep() .then () -> r() .catch (m, s) -> e(m, s) resolveDep: () -> me = @ return new Promise (r, e) -> dep = window.classes[me.name].dependencies r() unless dep fn = (l, i) -> return r() if i >= dep.length require(l[i]) .then () -> fn(l, i + 1) .catch (m, s) -> e(m, s) fn dep, 0 makeclass "BaseObject", BaseObject