<commit_before>tetra.controller.register('growl', {
	scope: 'growl',
	constr : function(me, app, page, orm) { return {
		events : {
			controller : {
				'growl: display' : function(params){
					if(me.ready){
						if(!me.count) app.notify("add growl container");
						
						app.notify("display growl", {
							message: params.message,
							options: me.methods.extend(me.options, params.options)
						});
						me.count++;
					}
					else{
						me.growlStack.push({
							message: params.message,
							options: me.methods.extend(me.options, params.options)
						});
					}
				},
				'growl: close' : function(){
					app.notify("hide growl");
				}
			},
			view:{
				'display stacked messages':function(){
					me.ready = true;
					if(!me.count) app.notify("add growl container");
					
					for(var i = 0, l = me.growlStack.length; i < l; i++){
						app.notify("display growl", {
							message: me.growlStack[i].message,
							options: me.growlStack[i].options
						});

						me.count++;
					}
				}
			}
		},
		methods : {
			init : function () {
				me.count = 0;
				me.ready = false;
				me.options = {
					type: 'info',
					width: 350,
					position: 'center',
					delay: 2500,
					dismiss: false,
					template: 'growl'
				};
				me.growlStack = [];
			},
			extend : function (target, source) {
				target = target || {};
				for (var prop in source) {
					target[prop] = source[prop];
				}
				return target;
			}
		}
	};}
});<commit_msg>update the growl extend method<commit_after>tetra.controller.register('growl', {
	scope: 'growl',
	constr : function(me, app, page, orm) { return {
		events : {
			controller : {
				'growl: display' : function(params){
					if(me.ready){
						if(!me.count) app.notify("add growl container");
						
						app.notify("display growl", {
							message: params.message,
							options: me.methods.extend(me.options, params.options)
						});
						me.count++;
					}
					else{
						me.growlStack.push({
							message: params.message,
							options: me.methods.extend(me.options, params.options)
						});
					}
				},
				'growl: close' : function(){
					app.notify("hide growl");
				}
			},
			view:{
				'display stacked messages':function(){
					me.ready = true;
					if(!me.count) app.notify("add growl container");
					
					for(var i = 0, l = me.growlStack.length; i < l; i++){
						app.notify("display growl", {
							message: me.growlStack[i].message,
							options: me.growlStack[i].options
						});

						me.count++;
					}
				}
			}
		},
		methods : {
			init : function () {
				me.count = 0;
				me.ready = false;
				me.options = {
					type: 'info',
					width: 350,
					position: 'center',
					delay: 2500,
					dismiss: false,
					template: 'growl'
				};
				me.growlStack = [];
			},
			extend : function (target, source) {
				var extended = {};
				for (var prop in target){
					extended[prop] = target[prop];
				}
				for (var prop in source) {
					extended[prop] = source[prop];
				}
				return extended;
			}
		}
	};}
});
{'fraction_non_alphanumeric': 0.16299704239237595, 'fraction_numerical': 0.005915215248110417, 'mean_word_length': 2.138144329896907, 'pattern_counts': {'":': 0, '<': 5, '<?xml version=': 0, '>': 3, 'https://': 0, 'lorem ipsum': 0, 'www.': 0, 'xml': 0}, 'pii_count': 0, 'substrings_counts': 0, 'word_list_counts': {'cursed_substrings.json': 0, 'profanity_word_list.json': 0, 'sexual_word_list.json': 0, 'zh_pornsignals.json': 0}}
{'dir': 'git-commits-cleaned', 'id': '6810500', 'n_tokens_mistral': 1492, 'n_tokens_neox': 1013, 'n_words': 211}