@leansdk/leanrc
Version:
LeanRC is a MVC framework for creating graceful applications
41 lines (30 loc) • 1.02 kB
text/coffeescript
module.exports = (Module) ->
{
STARTUP
Facade
StartupCommand
} = Module::
class ApplicationFacade extends Facade
@inheritProtected()
@module Module
vpbIsInitialized = @private isInitialized: Boolean,
default: no
cphInstanceMap = Symbol.for '~instanceMap'
@protected initializeController: Function,
default: (args...)->
@super args...
@registerCommand STARTUP, StartupCommand
# ... здесь могут быть регистрации и других команд
@public startup: Function,
default: (aoApplication)->
unless @[vpbIsInitialized]
@[vpbIsInitialized] = yes
@sendNotification STARTUP, aoApplication
return
@public @static getInstance: Function,
default: (asKey)->
vhInstanceMap = Facade[cphInstanceMap]
unless vhInstanceMap[asKey]?
vhInstanceMap[asKey] = ApplicationFacade.new asKey
vhInstanceMap[asKey]
ApplicationFacade.initialize()