function compile(modelName, schema, dependencies) {
        logger.trace("Compiling schema ", modelName)
        var model = function AngooseModule(data) {
            //@todo proper clone
            for (var i in data) {
                this[i] = data[i];
            }
        };

        model.toString = function() {
            return "PROXY: function " + modelName + "()";
        }
        // static methods
        for (var name in schema.statics) {
            model[name] = createProxy(model, name, schema.statics[name], 'static');
        }
        for (var name in schema.methods) {
            model.prototype[name] = createProxy(model, name, schema.methods[name], 'instance');
        }

        //model.angoose$ = staticInvoker;
        model.dependencies$ = dependencies;
        model.schema = schema;
        //model.prototype.angoose$ = instanceInvoker;
        //model.prototype.classname$ = modelName;
        //model.prototype.schema$ = schema;
        model.prototype.get = getter;
        model.prototype.set = setter;
        model.modelName = modelName; // this is to be compatible with backend mongoose
        model.name = modelName; 

        // merge data into this instance
        model.prototype.mergeData = function(source) {
            if ( typeof source != "object")
                throw "Invalid source object, must be an model instance";
            //@todo: proper implementation
            for (var i in source) {
                this[i] = source[i];
            }
        }
        AngooseClient.models = AngooseClient.models || {};
        AngooseClient.models[modelName] = model;
        return model;
    }
function compile(modelName, schema, dependencies) {
        logger.trace("Compiling schema ", modelName)
        var model = function AngooseModule(data) {
            
            for (var i in data) {
                this[i] = data[i];
            }
        };

        model.toString = function() {
            return "PROXY: function " + modelName + "()";
        }
        
        for (var name in schema.statics) {
            model[name] = createProxy(model, name, schema.statics[name], 'static');
        }
        for (var name in schema.methods) {
            model.prototype[name] = createProxy(model, name, schema.methods[name], 'instance');
        }

        
        model.dependencies$ = dependencies;
        model.schema = schema;
        
        
        
        model.prototype.get = getter;
        model.prototype.set = setter;
        model.modelName = modelName; 
        model.name = modelName; 

        
        model.prototype.mergeData = function(source) {
            if ( typeof source != "object")
                throw "Invalid source object, must be an model instance";
            
            for (var i in source) {
                this[i] = source[i];
            }
        }
        AngooseClient.models = AngooseClient.models || {};
        AngooseClient.models[modelName] = model;
        return model;
    }
function compile ( modelName , schema , dependencies ) { logger . trace ( "Compiling schema " , modelName ) var model = function AngooseModule ( data ) { //@todo proper clone for ( var i in data ) { this [ i ] = data [ i ] ; } } ; model . toString = function ( ) { return "PROXY: function " + modelName + "()" ; } // static methods for ( var name in schema . statics ) { model [ name ] = createProxy ( model , name , schema . statics [ name ] , 'static' ) ; } for ( var name in schema . methods ) { model . prototype [ name ] = createProxy ( model , name , schema . methods [ name ] , 'instance' ) ; } //model.angoose$ = staticInvoker; model . dependencies$ = dependencies ; model . schema = schema ; //model.prototype.angoose$ = instanceInvoker; //model.prototype.classname$ = modelName; //model.prototype.schema$ = schema; model . prototype . get = getter ; model . prototype . set = setter ; model . modelName = modelName ; // this is to be compatible with backend mongoose
 model . name = modelName ; // merge data into this instance model . prototype . mergeData = function ( source ) { if ( typeof source != "object" ) throw "Invalid source object, must be an model instance" ; //@todo: proper implementation for ( var i in source ) { this [ i ] = source [ i ] ; } } AngooseClient . models = AngooseClient . models || { } ; AngooseClient . models [ modelName ] = model ; return model ; }
compile the model based on the server side schema
compile the model based on the server side schema