| 
														
															@@ -52,6 +52,7 @@ var defaults = function() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'deploy': false, 
														 | 
														
														 | 
														
															 		'deploy': false, 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'libraries': [], 
														 | 
														
														 | 
														
															 		'libraries': [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'compile': [], 
														 | 
														
														 | 
														
															 		'compile': [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		'compiled_categories': [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'compiled': [], 
														 | 
														
														 | 
														
															 		'compiled': [], 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		'program': undefined 
														 | 
														
														 | 
														
															 		'program': undefined 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	}; 
														 | 
														
														 | 
														
															 	}; 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -250,10 +251,12 @@ function collect_files(filesArray) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		switch (suffix) { 
														 | 
														
														 | 
														
															 		switch (suffix) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			case '.st': 
														 | 
														
														 | 
														
															 			case '.st': 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				if (path.existsSync(currentFile)) { 
														 | 
														
														 | 
														
															 				if (path.existsSync(currentFile)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					defaults.compile.push(currentFile, category); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					defaults.compile.push(currentFile); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					defaults.compiled_categories.push(category); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					defaults.compiled.push(category + defaults.suffix_used + '.js'); 
														 | 
														
														 | 
														
															 					defaults.compiled.push(category + defaults.suffix_used + '.js'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				} else if (path.existsSync(amberFile)) { 
														 | 
														
														 | 
														
															 				} else if (path.existsSync(amberFile)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-					defaults.compile.push(amberFile, category); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					defaults.compile.push(amberFile); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+					defaults.compiled_categories.push(category); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					defaults.compiled.push(category + defaults.suffix_used + '.js'); 
														 | 
														
														 | 
														
															 					defaults.compiled.push(category + defaults.suffix_used + '.js'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 				} else { 
														 | 
														
														 | 
														
															 				} else { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 					throw(new Error('File not found: ' + currentFile)); 
														 | 
														
														 | 
														
															 					throw(new Error('File not found: ' + currentFile)); 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -322,7 +325,7 @@ function create_compiler(compilerFilesArray) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 function compile() { 
														 | 
														
														 | 
														
															 function compile() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	console.log('Compiling collected .st files to .js') 
														 | 
														
														 | 
														
															 	console.log('Compiling collected .st files to .js') 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	node_compile(defaults.compile); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	node_compile(defaults.compile, defaults.compiled_categories); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	console.log('Verifying if all .st files were compiled'); 
														 | 
														
														 | 
														
															 	console.log('Verifying if all .st files were compiled'); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	map(defaults.compiled, function(file, callback) { 
														 | 
														
														 | 
														
															 	map(defaults.compiled, function(file, callback) { 
														 | 
													
												
											
										
											
												
													
														 | 
														
															@@ -341,24 +344,26 @@ function compile() { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-function node_compile(filesArray) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	// The filesArray variable is a series of .st filenames and category names. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	// If it is a .st file we import it, if it is a category name we export it 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	// as aCategoryName.js. 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+function node_compile(smalltalkFiles, categories) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	// the smalltalkFiles variable is a series of .st filenames to be imported 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	// the categories variable holds category names to be exported as aCategoryName.js. 
														 | 
													
												
											
												
													
														| 
														 | 
														
															  
														 | 
														
														 | 
														
															  
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	// If it ends with .st, import it, otherwise export category as .js 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-	filesArray.forEach(function(val, index, array) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	// import .st files 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	smalltalkFiles.forEach(function(val) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		if (/\.st/.test(val)) { 
														 | 
														
														 | 
														
															 		if (/\.st/.test(val)) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			console.log("Reading file " + val); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			code = fs.readFileSync(val, "utf8"); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			console.log("Importing: " + val); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			var code = fs.readFileSync(val, "utf8"); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 			defaults.smalltalk.Importer._new()._import_(code._stream()); 
														 | 
														
														 | 
														
															 			defaults.smalltalk.Importer._new()._import_(code._stream()); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-		} else { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			console.log("Exporting " + (defaults.deploy ? "(debug + deploy)" : "(debug)") + " category " 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				+ val + " as " + val + defaults.suffix_used + ".js" + (defaults.deploy ? " and " + val + defaults.suffix_used + ".deploy.js" : "")); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			fs.writeFileSync(val + defaults.suffix_used + ".js", defaults.smalltalk.Exporter._new()._exportPackage_(val)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			if (defaults.deploy) { 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-				fs.writeFileSync(val + defaults.suffix_used + ".deploy.js", defaults.smalltalk.StrippedExporter._new()._exportPackage_(val)); 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															-			} 
														 | 
														
														 | 
														
															 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	}); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+ 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	// export categories as .js 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+	categories.forEach(function(val) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		console.log("Exporting " + (defaults.deploy ? "(debug + deploy)" : "(debug)") + " category " 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			+ val + " as " + val + defaults.suffix_used + ".js" + (defaults.deploy ? " and " + val + defaults.suffix_used + ".deploy.js" : "")); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		fs.writeFileSync(val + defaults.suffix_used + ".js", defaults.smalltalk.Exporter._new()._exportPackage_(val)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+		if (defaults.deploy) { 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 
														 | 
														
														 | 
														
															+			fs.writeFileSync(val + defaults.suffix_used + ".deploy.js", defaults.smalltalk.StrippedExporter._new()._exportPackage_(val)); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 		} 
														 | 
														
														 | 
														
															 		} 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 	}); 
														 | 
														
														 | 
														
															 	}); 
														 | 
													
												
											
												
													
														| 
														 | 
														
															 } 
														 | 
														
														 | 
														
															 } 
														 |