Sha256: 6dd5c67fbfe31c32b0fc579980d53f00a7b28f19b1fa98ddaf7cf23f28c962af
Contents?: true
Size: 1.57 KB
Versions: 3
Compression:
Stored size: 1.57 KB
Contents
FUNC_NAME_REGEX = /function\s+([^\s\(]+)/ addMissingFunctionName = (klass)-> return if klass.name Object.defineProperty( klass, 'name', { get: -> this._name_cache_ ||= ( results = FUNC_NAME_REGEX.exec((this).toString()) if (results && results.length) then results[1] else "" ) set: (value)-> return {} }) mixinModules = (klass)-> Lanes.lib.ModuleSupport.includeInto(klass) if klass::mixins klass.include(Lanes.getPath(mixin)) for mixin in klass::mixins extendClass = (ampersand_base, parent, child)-> child.__super__ = parent.prototype child.Derived = [] parent.Derived.push(child) for prop in parent::extended_properties || [] if parent::[prop] && child::[prop] _.extend( child::[prop], parent::[prop] ) mixinModules(child) parent.extended(child) if _.isFunction(parent.extended) child = ampersand_base.extend.call(parent, child.prototype ) child.extend = (klass)-> extendClass( ampersand_base, child, klass ) parent.afterExtended(child) if _.isFunction(parent.afterExtended) addMissingFunctionName(child) child createExtendsChain = ( ampersand_base, base )-> return (klass)-> extendClass( ampersand_base, this, klass ) base.__super__ = ampersand_base.prototype base Lanes.lib.MakeBaseClass = ( ampersand_base, base )-> base = ampersand_base.extend( base.prototype ) mixinModules(base) base.extend = createExtendsChain( ampersand_base, base ) base.Derived = [] base
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
lanes-0.1.2 | client/lanes/lib/MakeBaseClass.coffee |
lanes-0.1.0 | client/lanes/lib/MakeBaseClass.coffee |
lanes-0.0.8 | client/lanes/lib/MakeBaseClass.coffee |