Browse Source

Merge pull request #573 from mkroehnert/requirejs

[requirejs] amberc and grunt-amber now offer an option to set the amd_namespace
Herbert Vojčík 11 years ago
parent
commit
24e3934b36
3 changed files with 23 additions and 17 deletions
  1. 7 6
      bin/amberc
  2. 6 1
      bin/amberc.js
  3. 10 10
      grunt/tasks/grunt-amberc.js

+ 7 - 6
bin/amberc

@@ -44,15 +44,15 @@ function handle_options(optionsArray, amber_dir) {
 			case '-g':
 				defaults.jsGlobals.push.apply(defaults.jsGlobals, optionsArray.shift().split(','));
 				break;
-			case '-i':
-				defaults.init = optionsArray.shift();
-				break;
 			case '-m':
 				defaults.main = optionsArray.shift();
 				break;
 			case '-M':
 				defaults.mainfile = optionsArray.shift();
 				break;
+			case '-n':
+				defaults.amd_namespace = optionsArray.shift();
+				break;
 			case '-o':
 				defaults.closure = true;
 				defaults.closure_parts = true;
@@ -146,15 +146,16 @@ function print_usage() {
 	console.log('     Comma separated list of JS global variable names.');
 	console.log('     The names are added to a list containing "window", "document" and others.');
 	console.log('');
-	console.log('  -i init_file');
-	console.log('     Add library initializer <init_file> instead of default $AMBER/js/init.js ');
-	console.log('');
 	console.log('  -m main_class');
 	console.log('     Add a call to the class method main_class>>main at the end of <Program>.');
 	console.log('');
 	console.log('  -M main_file');
 	console.log('     Add <main_file> at the end of <Program.js> acting as #main.');
 	console.log('');
+	console.log('  -n amd_namespace');
+	console.log('     Export packages with <amd_namespace> as the require.js namespace.');
+	console.log('     Default value is "amber".');
+	console.log('');
 	console.log('  -o');
 	console.log('     Optimize each .js file using the Google closure compiler.');
 	console.log('     Using Closure compiler found at ~/compiler.jar');

+ 6 - 1
bin/amberc.js

@@ -154,6 +154,7 @@ var createDefaults = function(amber_dir, finished_callback){
 		'stFiles': [],
 		'jsFiles': [],
 		'jsGlobals': [],
+		'amd_namespace': 'amber',
 		'closure': false,
 		'closure_parts': false,
 		'closure_full': false,
@@ -189,6 +190,10 @@ AmberC.prototype.main = function(configuration, finished_callback) {
 		configuration.deploy = true;
 	}
 
+	if (configuration.amd_namespace.length == 0) {
+		configuration.amd_namespace = 'amber';
+	}
+
 	console.ambercLog = console.log;
 	if (false === configuration.verbose) {
 		console.log = function() {};
@@ -539,7 +544,7 @@ AmberC.prototype.category_export = function() {
 		var smalltalk = defaults.smalltalk;
 		var pluggableExporter = smalltalk.PluggableExporter;
 		var packageObject = smalltalk.Package._named_(category);
-		packageObject._amdNamespace_("amber");
+		packageObject._amdNamespace_(defaults.amd_namespace);
 		fs.writeFile(jsFile, smalltalk.String._streamContents_(function (stream) {
 			pluggableExporter._newUsing_(smalltalk.Exporter._amdRecipe())._exportPackage_on_(packageObject, stream); }), function(err) {
 			if (defaults.deploy) {

+ 10 - 10
grunt/tasks/grunt-amberc.js

@@ -18,12 +18,12 @@ module.exports = function(grunt) {
          libraries: 'Canvas',                   // optional
          jsGlobals: ['global1', 'global2'],     // optional
          main_class: 'HelloWorld',              // optional
-         output_name: 'helloWorld',            // optional
-         init: 'myInit',                       // optional
-         main_file: 'myMain.js',               // optional
-         deploy: true,                         // optional
-         output_suffix: 'mySuffix',            // optional
-         library_suffix: '-0.9'                // optional
+         output_name: 'helloWorld',             // optional
+         amd_namespace: 'MyNamespace',          // optional (default: 'amber')
+         main_file: 'myMain.js',                // optional
+         deploy: true,                          // optional
+         output_suffix: 'mySuffix',             // optional
+         library_suffix: '-0.9'                 // optional
        },
      },
 
@@ -66,10 +66,6 @@ module.exports = function(grunt) {
     if (undefined !== libraries) {
       configuration.load = libraries;
     }
-    var initFile = data.init;
-    if (undefined !== initFile) {
-      configuration.init = initFile;
-    }
     var mainClass = data.main_class;
     if (undefined !== mainClass) {
       configuration.main = mainClass;
@@ -109,6 +105,10 @@ module.exports = function(grunt) {
     if (undefined !== outputName) {
       configuration.program = outputName;
     }
+    var amdNamespace = data.amd_namespace;
+    if (undefined !== amdNamespace) {
+      configuration.amd_namespace = amdNamespace;
+    }
     if (undefined !== data.output_dir) {
       configuration.output_dir = data.output_dir;
     }