Sha256: 5e24dacf57c9f0dc44c281e7995e3bb7200969829d1956c9919641663fe068b4

Contents?: true

Size: 1.02 KB

Versions: 1

Compression:

Stored size: 1.02 KB

Contents

Luca.registry.componentMetaData = {}

Luca.registry.getMetaDataFor = (componentName)->
  new MetaDataProxy(Luca.registry.componentMetaData[ componentName ])

Luca.registry.addMetaData = (componentName, key, value)->
  data = Luca.registry.componentMetaData[ componentName ] ||= {}
  data[ key ] = _(value).clone()
  data


class MetaDataProxy
  constructor: (@meta={})->
    @

  superClass: ()->
    Luca.util.resolve(@meta["super class name"])

  componentDefinition: ()->
    Luca.util.resolve(@meta["display name"])

  styleHierarchy: ()->
    list = _( @classHierarchy() ).map (cls)->
      Luca.util.toCssClass(cls, 'views', 'components', 'core','fields','containers')

    _( list ).without('backbone-view','luca-view')
      
  classHierarchy: ()->
    list = [ @meta["display name"], @meta["super class name"]]

    proxy = @superClass()?.prototype?.componentMetaData?()

    until not proxy
      list = list.concat( proxy?.classHierarchy() )
      proxy = proxy.superClass()?.prototype?.componentMetaData?()

    _( list ).uniq()

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
luca-0.9.7 src/core/meta_data.coffee