Nickolay - Joose-3.001

Documentation | Source
Joose.Helper = new Joose.Meta.Class('Joose.Helper', {
	
	my : {
		
		methods : {
			
			register : function (name, helperMeta, func) {
				
				if (!func) func = function (name, props) {
				    var metaClass
				    
				    if (props && props.meta) {
				        metaClass = props.meta
				        delete props.meta
				    }	
					
					Joose.Namespace.Manager.my.create(name, metaClass || helperMeta, props)
				}
				
				__global__.addProperty(name, func)
			}
			
		}
		
	}

}).c



Joose.Helper.my.register('Class', Joose.Meta.Class, function (name, props) {
    var metaClass = Joose.Meta.Class
    
    if (props && props.meta) {
        metaClass = props.meta
        delete props.meta
    } else 
        if (props && typeof props.isa == 'function')
            if (props.isa.meta.isDetached())
                metaClass = props.isa.meta.meta.originalClass
            else
                metaClass = props.isa.meta.constructor
    
    return Joose.Namespace.Manager.my.create(name, metaClass, props)
})


Joose.Helper.my.register('Role', Joose.Meta.Role)


Joose.Helper.my.register('Module', Joose.Namespace.Keeper, function (name, props) {
	if (typeof props == 'function') props = { body : props }
	
    return Joose.Namespace.Manager.my.create(name, Joose.Namespace.Keeper, props)
})