From 3b406b30c232728df67d55755d0617b52fb0dadd Mon Sep 17 00:00:00 2001 From: Colin Eberhardt Date: Tue, 11 Aug 2015 17:21:09 +0100 Subject: [PATCH] Module pattern is now implemented via templating Previously two modules were defined, Layout.js, which is the internal implementation, and main.js, which depended on Layout.js and performed the fill / extract functionality required for a public JavaScript API. This simplifies the implementation by just exposing a single UMD module by directly including Layout.js within the module wrapper. Fixes #103 --- Gruntfile.js | 19 ++++++++++--------- package.json | 1 + src/{main.js => css-layout.js} | 11 ++++++----- 3 files changed, 17 insertions(+), 14 deletions(-) rename src/{main.js => css-layout.js} (74%) diff --git a/Gruntfile.js b/Gruntfile.js index e19a252a..40d66eda 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -21,14 +21,15 @@ module.exports = function(grunt) { target: ['<%= paths.srcFolder %>/Layout.js'] }, - copy: { + includereplace: { + options: { + prefix: '// @@', + }, main: { - expand: true, - src: ['<%= paths.srcFolder %>/Layout.js'], - dest: '<%= paths.distFolder %>', - rename: function(dest, src) { - return dest + '/css-layout.js'; - } + // Files to perform replacements and includes with + src: '<%= paths.srcFolder %>/css-layout.js', + // Destination directory to copy files to + dest: '<%= paths.distFolder %>/css-layout.js' } }, @@ -39,7 +40,7 @@ module.exports = function(grunt) { }, main: { files: { - '<%= paths.distFolder %>/css-layout.min.js': ['<%= paths.srcFolder %>/Layout.js'] + '<%= paths.distFolder %>/css-layout.min.js': ['<%= paths.distFolder %>/css-layout.js'] } } }, @@ -61,7 +62,7 @@ module.exports = function(grunt) { } }); - grunt.registerTask('build', ['eslint', 'clean', 'karma' ,'copy', 'uglify']); + grunt.registerTask('build', ['eslint', 'clean', 'karma' ,'includereplace', 'uglify']); grunt.registerTask('default', ['build']); }; diff --git a/package.json b/package.json index 314516d6..a3550da1 100644 --- a/package.json +++ b/package.json @@ -20,6 +20,7 @@ "grunt-contrib-copy": "^0.8.0", "grunt-contrib-uglify": "^0.9.1", "grunt-eslint": "^17.1.0", + "grunt-include-replace": "^3.1.0", "grunt-karma": "^0.12.0", "jasmine-core": "^2.2.0", "karma": "^0.13.8", diff --git a/src/main.js b/src/css-layout.js similarity index 74% rename from src/main.js rename to src/css-layout.js index ac5c1084..14ebab19 100644 --- a/src/main.js +++ b/src/css-layout.js @@ -11,14 +11,15 @@ module.exports = factory(); } else { // Browser globals (root is window) - root.returnExports = factory(); + root.computeLayout = factory(); } }(this, function () { - var layout = require('./Layout.js'); + // @@include('./Layout.js') + return function(node) { - node = layout.fillNodes(node); - layout.computeLayout(node); - node = layout.extractNodes(node); + node = computeLayout.fillNodes(node); + computeLayout.computeLayout(node); + node = computeLayout.extractNodes(node); return node; }; }));