Sha256: 406ea8625fd59c3ff3e8b35354611d19ac90176216efe0b85945efaaf95cd985

Contents?: true

Size: 1.08 KB

Versions: 9

Compression:

Stored size: 1.08 KB

Contents

Lanes.Extensions = {

    instances: {}

    register: (klass) ->
        instance = new klass
        this.instances[klass.prototype.identifier] = instance
        instance.onRegistered?()

    fireOnInitialized: (viewport) ->
        instance.onInitialized?(viewport) for identifier, instance of @instances

    fireOnAvailable: (viewport) ->
        instance.onAvailable?(viewport) for identifier, instance of @instances

    getViews: ->
        _.Promise.all _.invoke(@instances, 'getView')

    setBootstrapData: (bootstrap_data) ->
        @controlling_id = bootstrap_data.controlling_extension
        for identifier, instance of @instances
            instance.setBootstrapData?(bootstrap_data[identifier])

    makeNamespace: (identifier) ->
        for ns in ['Models', 'Controllers', 'Screens', 'Components']
            Lanes.namespace("#{identifier}.#{ns}.Mixins")

    controlling: ->
        this.get( @controlling_id )

    routes: ->
        _.flatten _.map @instances, (instance, id) ->
            instance.getRoutes?()

    get: (identifier) ->
        this.instances[identifier]
}

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
lanes-0.7.0 client/lanes/extension/Extensions.coffee
lanes-0.6.1 client/lanes/extension/Extensions.coffee
lanes-0.6.0 client/lanes/extension/Extensions.coffee
lanes-0.5.6 client/lanes/extension/Extensions.coffee
lanes-0.5.5 client/lanes/extension/Extensions.coffee
lanes-0.5.0 client/lanes/extension/Extensions.coffee
lanes-0.4.0 client/lanes/extension/Extensions.coffee
lanes-0.3.0 client/lanes/extension/Extensions.coffee
lanes-0.1.9.5 client/lanes/extension/Extensions.coffee