| 
					
				 | 
			
			
				@@ -0,0 +1,85 @@ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+'use strict'; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+var fs = require('fs'), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    path = require('path'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+function findAmberPath(options) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    var result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    options.some(function (x) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        var candidate = path.join(__dirname, x); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        return fs.existsSync(path.join(candidate, 'support/boot.js')) && (result = candidate); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    return result; 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+} 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+module.exports = function(grunt) { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  var path = require('path'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // These plugins provide necessary tasks. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grunt.loadNpmTasks('grunt-contrib-clean'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grunt.loadNpmTasks('grunt-execute'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grunt.loadNpmTasks('amber-dev'); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Default task. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grunt.registerTask('default', ['amberc:all']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grunt.registerTask('test', ['amberc:test_runner', 'execute:test_runner', 'clean:test_runner']); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  // Project configuration. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  grunt.initConfig({ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // Metadata. 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // pkg: grunt.file.readJSON(''), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    banner: '/*! <%= pkg.title || pkg.name %> - v<%= pkg.version %> - ' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      '<%= grunt.template.today("yyyy-mm-dd") %>\n' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      '<%= pkg.homepage ? "* " + pkg.homepage + "\\n" : "" %>' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      '* Copyright (c) <%= grunt.template.today("yyyy") %> <%= pkg.author.name %>;' + 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      ' Licensed <%= _.pluck(pkg.licenses, "type").join(", ") %> */\n', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    // task configuration 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    amberc: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      options: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        amber_dir: findAmberPath(['../..', 'bower_components/amber']), 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        library_dirs: ['src'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        closure_jar: '' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      all: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output_dir : 'src', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        src: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // list all sources in dependency order 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'src/Helios-Core.st', 'src/Helios-Exceptions.st', 'src/Helios-Announcements.st', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'src/Helios-KeyBindings.st', 'src/Helios-Layout.st', 'src/Helios-Helpers.st', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'src/Helios-Commands-Core.st', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'src/Helios-Commands-Tools.st', 'src/Helios-Commands-Browser.st', 'src/Helios-Commands-SUnit.st', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'src/Helios-References.st', 'src/Helios-Inspector.st', 'src/Helios-Browser.st', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'src/Helios-Transcript.st', 'src/Helios-Workspace.st', 'src/Helios-Debugger.st', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'src/Helios-SUnit.st', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          // list all tests in dependency order 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'src/Helios-Workspace-Tests.st', 'src/Helios-SUnit-Tests.st' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        libraries: ['Web', 'SUnit'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        amd_namespace: 'helios', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        jsGlobals: ['navigator'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      test_runner: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        src: ['node_modules/amber-dev/lib/Test.st'], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        libraries: [ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /* add dependencies packages here */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /* add other code-to-test packages here */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          'SUnit', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+          /* add other test packages here */ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        ], 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        main_class: 'NodeTestRunner', 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        output_name: 'test_runner' 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    execute: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      test_runner: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+        src: ['test_runner.js'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    }, 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    clean: { 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+      test_runner: ['test_runner.js'] 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+    } 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+  }); 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+ 
			 | 
		
	
		
			
				 | 
				 | 
			
			
				+}; 
			 |