Normalize line endings.
This commit is contained in:
parent
285f3ec285
commit
719a961fb5
3
.gitattributes
vendored
3
.gitattributes
vendored
@ -1,2 +1 @@
|
||||
# Automatically normalize line endings for all text-based files
|
||||
* text=crlf
|
||||
* text=auto
|
||||
|
8
AUTHORS
8
AUTHORS
@ -1,5 +1,5 @@
|
||||
Tim Branyen (http://tbranyen.com)
|
||||
Tyler Kellen (http://goingslowly.com/)
|
||||
Chris Talkington (http://christalkington.com/)
|
||||
Larry Davis (http://lazd.net/)
|
||||
Tim Branyen (http://tbranyen.com)
|
||||
Tyler Kellen (http://goingslowly.com/)
|
||||
Chris Talkington (http://christalkington.com/)
|
||||
Larry Davis (http://lazd.net/)
|
||||
Adrien Antoine (http://adriantoine.com/)
|
326
Gruntfile.js
326
Gruntfile.js
@ -1,163 +1,163 @@
|
||||
/*
|
||||
* grunt-contrib-jst
|
||||
* http://gruntjs.com/
|
||||
*
|
||||
* Copyright (c) 2016 Tim Branyen, contributors
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
module.exports = function(grunt) {
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
jshint: {
|
||||
all: [
|
||||
'Gruntfile.js',
|
||||
'tasks/*.js',
|
||||
'<%= nodeunit.tests %>'
|
||||
],
|
||||
options: {
|
||||
jshintrc: '.jshintrc'
|
||||
}
|
||||
},
|
||||
|
||||
// Before generating any new files, remove any previously-created files.
|
||||
clean: {
|
||||
test: ['tmp']
|
||||
},
|
||||
|
||||
// Configuration to be run (and then tested).
|
||||
jst: {
|
||||
compile: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
}
|
||||
},
|
||||
files: {
|
||||
'tmp/jst.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
pretty_amd: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
prettify: true,
|
||||
amd: true
|
||||
},
|
||||
files: {
|
||||
'tmp/pretty_amd.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
prettify: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
prettify: true
|
||||
},
|
||||
files: {
|
||||
'tmp/pretty.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
amd_wrapper: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
amd:true
|
||||
},
|
||||
files: {
|
||||
'tmp/amd_wrapper.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
amd_wrapper_no_ns: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
amd: true,
|
||||
namespace: false
|
||||
},
|
||||
files: {
|
||||
'tmp/amd_wrapper_no_ns.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
uglyfile: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
}
|
||||
},
|
||||
files: {
|
||||
'tmp/uglyfile.js': ['test/fixtures/*bad-filename*']
|
||||
}
|
||||
},
|
||||
ns_nested: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
namespace: 'MyApp.JST.Main'
|
||||
},
|
||||
files: {
|
||||
'tmp/ns_nested.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
ns_nested_this: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
namespace: 'this.MyApp.JST.Main'
|
||||
},
|
||||
files: {
|
||||
'tmp/ns_nested_this.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
process_content: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
processContent: function (src) {
|
||||
return src.replace(/(^\s+|\s+$)/gm, '');
|
||||
}
|
||||
},
|
||||
files: {
|
||||
'tmp/process_content.js': ['test/fixtures/indent_template.html']
|
||||
}
|
||||
},
|
||||
local_scope: {
|
||||
files: {
|
||||
'tmp/local_scope.js': ['test/fixtures/template_local_scope.html']
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Unit tests.
|
||||
nodeunit: {
|
||||
tests: ['test/*_test.js']
|
||||
}
|
||||
});
|
||||
|
||||
// Actually load this plugin's task(s).
|
||||
grunt.loadTasks('tasks');
|
||||
|
||||
// These plugins provide necessary tasks.
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-contrib-nodeunit');
|
||||
grunt.loadNpmTasks('grunt-contrib-internal');
|
||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||
|
||||
// Whenever the "test" task is run, first clean the "tmp" dir, then run this
|
||||
// plugin's task(s), then test the result.
|
||||
grunt.registerTask('test', ['clean', 'jst', 'nodeunit']);
|
||||
|
||||
// By default, lint and run all tests.
|
||||
grunt.registerTask('default', ['jshint', 'test', 'build-contrib']);
|
||||
|
||||
};
|
||||
/*
|
||||
* grunt-contrib-jst
|
||||
* http://gruntjs.com/
|
||||
*
|
||||
* Copyright (c) 2016 Tim Branyen, contributors
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
module.exports = function(grunt) {
|
||||
|
||||
// Project configuration.
|
||||
grunt.initConfig({
|
||||
jshint: {
|
||||
all: [
|
||||
'Gruntfile.js',
|
||||
'tasks/*.js',
|
||||
'<%= nodeunit.tests %>'
|
||||
],
|
||||
options: {
|
||||
jshintrc: '.jshintrc'
|
||||
}
|
||||
},
|
||||
|
||||
// Before generating any new files, remove any previously-created files.
|
||||
clean: {
|
||||
test: ['tmp']
|
||||
},
|
||||
|
||||
// Configuration to be run (and then tested).
|
||||
jst: {
|
||||
compile: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
}
|
||||
},
|
||||
files: {
|
||||
'tmp/jst.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
pretty_amd: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
prettify: true,
|
||||
amd: true
|
||||
},
|
||||
files: {
|
||||
'tmp/pretty_amd.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
prettify: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
prettify: true
|
||||
},
|
||||
files: {
|
||||
'tmp/pretty.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
amd_wrapper: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
amd:true
|
||||
},
|
||||
files: {
|
||||
'tmp/amd_wrapper.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
amd_wrapper_no_ns: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
amd: true,
|
||||
namespace: false
|
||||
},
|
||||
files: {
|
||||
'tmp/amd_wrapper_no_ns.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
uglyfile: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
}
|
||||
},
|
||||
files: {
|
||||
'tmp/uglyfile.js': ['test/fixtures/*bad-filename*']
|
||||
}
|
||||
},
|
||||
ns_nested: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
namespace: 'MyApp.JST.Main'
|
||||
},
|
||||
files: {
|
||||
'tmp/ns_nested.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
ns_nested_this: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
namespace: 'this.MyApp.JST.Main'
|
||||
},
|
||||
files: {
|
||||
'tmp/ns_nested_this.js': ['test/fixtures/template.html']
|
||||
}
|
||||
},
|
||||
process_content: {
|
||||
options: {
|
||||
templateSettings: {
|
||||
variable: 'obj'
|
||||
},
|
||||
processContent: function (src) {
|
||||
return src.replace(/(^\s+|\s+$)/gm, '');
|
||||
}
|
||||
},
|
||||
files: {
|
||||
'tmp/process_content.js': ['test/fixtures/indent_template.html']
|
||||
}
|
||||
},
|
||||
local_scope: {
|
||||
files: {
|
||||
'tmp/local_scope.js': ['test/fixtures/template_local_scope.html']
|
||||
}
|
||||
}
|
||||
},
|
||||
|
||||
// Unit tests.
|
||||
nodeunit: {
|
||||
tests: ['test/*_test.js']
|
||||
}
|
||||
});
|
||||
|
||||
// Actually load this plugin's task(s).
|
||||
grunt.loadTasks('tasks');
|
||||
|
||||
// These plugins provide necessary tasks.
|
||||
grunt.loadNpmTasks('grunt-contrib-jshint');
|
||||
grunt.loadNpmTasks('grunt-contrib-nodeunit');
|
||||
grunt.loadNpmTasks('grunt-contrib-internal');
|
||||
grunt.loadNpmTasks('grunt-contrib-clean');
|
||||
|
||||
// Whenever the "test" task is run, first clean the "tmp" dir, then run this
|
||||
// plugin's task(s), then test the result.
|
||||
grunt.registerTask('test', ['clean', 'jst', 'nodeunit']);
|
||||
|
||||
// By default, lint and run all tests.
|
||||
grunt.registerTask('default', ['jshint', 'test', 'build-contrib']);
|
||||
|
||||
};
|
||||
|
40
LICENSE-MIT
40
LICENSE-MIT
@ -1,22 +1,22 @@
|
||||
Copyright (c) 2016 Tim Branyen, contributors
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
|
||||
Permission is hereby granted, free of charge, to any person
|
||||
obtaining a copy of this software and associated documentation
|
||||
files (the "Software"), to deal in the Software without
|
||||
restriction, including without limitation the rights to use,
|
||||
copy, modify, merge, publish, distribute, sublicense, and/or sell
|
||||
copies of the Software, and to permit persons to whom the
|
||||
Software is furnished to do so, subject to the following
|
||||
conditions:
|
||||
|
||||
The above copyright notice and this permission notice shall be
|
||||
included in all copies or substantial portions of the Software.
|
||||
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
|
||||
OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
|
||||
NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
|
||||
HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
|
||||
OTHER DEALINGS IN THE SOFTWARE.
|
188
tasks/jst.js
188
tasks/jst.js
@ -1,94 +1,94 @@
|
||||
/*
|
||||
* grunt-contrib-jst
|
||||
* http://gruntjs.com/
|
||||
*
|
||||
* Copyright (c) 2016 Tim Branyen, contributors
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash');
|
||||
var chalk = require('chalk');
|
||||
|
||||
module.exports = function(grunt) {
|
||||
// filename conversion for templates
|
||||
var defaultProcessName = function(name) { return name; };
|
||||
|
||||
grunt.registerMultiTask('jst', 'Compile underscore templates to JST file', function() {
|
||||
var lf = grunt.util.linefeed;
|
||||
var lib = require('./lib/jst');
|
||||
var options = this.options({
|
||||
namespace: 'JST',
|
||||
templateSettings: {},
|
||||
processContent: function (src) { return src; },
|
||||
separator: lf + lf
|
||||
});
|
||||
|
||||
// assign filename transformation functions
|
||||
var processName = options.processName || defaultProcessName;
|
||||
|
||||
var nsInfo;
|
||||
if (options.namespace !== false) {
|
||||
nsInfo = lib.getNamespaceDeclaration(options.namespace);
|
||||
}
|
||||
|
||||
this.files.forEach(function(f) {
|
||||
var output = f.src.filter(function(filepath) {
|
||||
// Warn on and remove invalid source files (if nonull was set).
|
||||
if (!grunt.file.exists(filepath)) {
|
||||
grunt.log.warn('Source file ' + chalk.cyan(filepath) + ' not found.');
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
})
|
||||
.map(function(filepath) {
|
||||
var src = options.processContent(grunt.file.read(filepath));
|
||||
var compiled, filename;
|
||||
|
||||
try {
|
||||
compiled = _.template(src, false, options.templateSettings).source;
|
||||
} catch (e) {
|
||||
grunt.log.error(e);
|
||||
grunt.fail.warn('JST ' + chalk.cyan(filepath) + ' failed to compile.');
|
||||
}
|
||||
|
||||
if (options.prettify) {
|
||||
compiled = compiled.replace(/\n/g, '');
|
||||
}
|
||||
filename = processName(filepath);
|
||||
|
||||
if (options.amd && options.namespace === false) {
|
||||
return 'return ' + compiled;
|
||||
}
|
||||
return nsInfo.namespace+'['+JSON.stringify(filename)+'] = '+compiled+';';
|
||||
});
|
||||
|
||||
if (output.length < 1) {
|
||||
grunt.log.warn('Destination not written because compiled files were empty.');
|
||||
} else {
|
||||
if (options.namespace !== false) {
|
||||
output.unshift(nsInfo.declaration);
|
||||
}
|
||||
if (options.amd) {
|
||||
if (options.prettify) {
|
||||
output.forEach(function(line, index) {
|
||||
output[index] = ' ' + line;
|
||||
});
|
||||
}
|
||||
output.unshift('define(function(){');
|
||||
if (options.namespace !== false) {
|
||||
// Namespace has not been explicitly set to false; the AMD
|
||||
// wrapper will return the object containing the template.
|
||||
output.push(' return ' + nsInfo.namespace + ';');
|
||||
}
|
||||
output.push('});');
|
||||
}
|
||||
grunt.file.write(f.dest, output.join(grunt.util.normalizelf(options.separator)));
|
||||
grunt.log.writeln('File ' + chalk.cyan(f.dest) + ' created.');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
};
|
||||
/*
|
||||
* grunt-contrib-jst
|
||||
* http://gruntjs.com/
|
||||
*
|
||||
* Copyright (c) 2016 Tim Branyen, contributors
|
||||
* Licensed under the MIT license.
|
||||
*/
|
||||
|
||||
'use strict';
|
||||
|
||||
var _ = require('lodash');
|
||||
var chalk = require('chalk');
|
||||
|
||||
module.exports = function(grunt) {
|
||||
// filename conversion for templates
|
||||
var defaultProcessName = function(name) { return name; };
|
||||
|
||||
grunt.registerMultiTask('jst', 'Compile underscore templates to JST file', function() {
|
||||
var lf = grunt.util.linefeed;
|
||||
var lib = require('./lib/jst');
|
||||
var options = this.options({
|
||||
namespace: 'JST',
|
||||
templateSettings: {},
|
||||
processContent: function (src) { return src; },
|
||||
separator: lf + lf
|
||||
});
|
||||
|
||||
// assign filename transformation functions
|
||||
var processName = options.processName || defaultProcessName;
|
||||
|
||||
var nsInfo;
|
||||
if (options.namespace !== false) {
|
||||
nsInfo = lib.getNamespaceDeclaration(options.namespace);
|
||||
}
|
||||
|
||||
this.files.forEach(function(f) {
|
||||
var output = f.src.filter(function(filepath) {
|
||||
// Warn on and remove invalid source files (if nonull was set).
|
||||
if (!grunt.file.exists(filepath)) {
|
||||
grunt.log.warn('Source file ' + chalk.cyan(filepath) + ' not found.');
|
||||
return false;
|
||||
} else {
|
||||
return true;
|
||||
}
|
||||
})
|
||||
.map(function(filepath) {
|
||||
var src = options.processContent(grunt.file.read(filepath));
|
||||
var compiled, filename;
|
||||
|
||||
try {
|
||||
compiled = _.template(src, false, options.templateSettings).source;
|
||||
} catch (e) {
|
||||
grunt.log.error(e);
|
||||
grunt.fail.warn('JST ' + chalk.cyan(filepath) + ' failed to compile.');
|
||||
}
|
||||
|
||||
if (options.prettify) {
|
||||
compiled = compiled.replace(/\n/g, '');
|
||||
}
|
||||
filename = processName(filepath);
|
||||
|
||||
if (options.amd && options.namespace === false) {
|
||||
return 'return ' + compiled;
|
||||
}
|
||||
return nsInfo.namespace+'['+JSON.stringify(filename)+'] = '+compiled+';';
|
||||
});
|
||||
|
||||
if (output.length < 1) {
|
||||
grunt.log.warn('Destination not written because compiled files were empty.');
|
||||
} else {
|
||||
if (options.namespace !== false) {
|
||||
output.unshift(nsInfo.declaration);
|
||||
}
|
||||
if (options.amd) {
|
||||
if (options.prettify) {
|
||||
output.forEach(function(line, index) {
|
||||
output[index] = ' ' + line;
|
||||
});
|
||||
}
|
||||
output.unshift('define(function(){');
|
||||
if (options.namespace !== false) {
|
||||
// Namespace has not been explicitly set to false; the AMD
|
||||
// wrapper will return the object containing the template.
|
||||
output.push(' return ' + nsInfo.namespace + ';');
|
||||
}
|
||||
output.push('});');
|
||||
}
|
||||
grunt.file.write(f.dest, output.join(grunt.util.normalizelf(options.separator)));
|
||||
grunt.log.writeln('File ' + chalk.cyan(f.dest) + ' created.');
|
||||
}
|
||||
});
|
||||
|
||||
});
|
||||
};
|
||||
|
124
test/jst_test.js
124
test/jst_test.js
@ -1,62 +1,62 @@
|
||||
'use strict';
|
||||
|
||||
var grunt = require('grunt');
|
||||
|
||||
function readFile(file) {
|
||||
var contents = grunt.file.read(file);
|
||||
if (process.platform === 'win32') {
|
||||
contents = contents.replace(/\r\n/g, '\n');
|
||||
}
|
||||
return contents;
|
||||
}
|
||||
|
||||
exports.jst = {
|
||||
main: function(test) {
|
||||
|
||||
var expect, result;
|
||||
|
||||
test.expect(10);
|
||||
|
||||
expect = readFile('test/expected/jst.js');
|
||||
result = readFile('tmp/jst.js');
|
||||
test.equal(expect, result, 'should compile underscore templates into JST');
|
||||
|
||||
expect = readFile('test/expected/uglyfile.js');
|
||||
result = readFile('tmp/uglyfile.js');
|
||||
test.equal(expect, result, 'should escape single quotes in filenames');
|
||||
|
||||
expect = readFile('test/expected/ns_nested.js');
|
||||
result = readFile('tmp/ns_nested.js');
|
||||
test.equal(expect, result, 'should define parts of nested namespaces');
|
||||
|
||||
expect = readFile('test/expected/ns_nested.js'); // same as previous test
|
||||
result = readFile('tmp/ns_nested_this.js');
|
||||
test.equal(expect, result, 'should define parts of nested namespaces, ignoring this.');
|
||||
|
||||
expect = readFile('test/expected/pretty.js');
|
||||
result = readFile('tmp/pretty.js');
|
||||
test.equal(expect, result, 'should make the output be 1 line per template, making the output less ugly');
|
||||
|
||||
expect = readFile('test/expected/amd_wrapper.js');
|
||||
result = readFile('tmp/amd_wrapper.js');
|
||||
test.equal(expect, result, 'should wrap the template with define for AMD pattern');
|
||||
|
||||
expect = readFile('test/expected/amd_wrapper_no_ns.js');
|
||||
result = readFile('tmp/amd_wrapper_no_ns.js');
|
||||
test.equal(expect, result, 'should wrap the template with define for AMD pattern and return the function itself with no namespace');
|
||||
|
||||
expect = readFile('test/expected/pretty_amd.js');
|
||||
result = readFile('tmp/pretty_amd.js');
|
||||
test.equal(expect, result, 'should make the AMD wrapper output pretty');
|
||||
|
||||
expect = readFile('test/expected/process_content.js');
|
||||
result = readFile('tmp/process_content.js');
|
||||
test.equal(expect, result, 'should convert file content');
|
||||
|
||||
expect = readFile('test/expected/local_scope.js');
|
||||
result = readFile('tmp/local_scope.js');
|
||||
test.equal(expect, result, 'should add `with` block when templateSettings.variable is undefined');
|
||||
|
||||
test.done();
|
||||
}
|
||||
};
|
||||
'use strict';
|
||||
|
||||
var grunt = require('grunt');
|
||||
|
||||
function readFile(file) {
|
||||
var contents = grunt.file.read(file);
|
||||
if (process.platform === 'win32') {
|
||||
contents = contents.replace(/\r\n/g, '\n');
|
||||
}
|
||||
return contents;
|
||||
}
|
||||
|
||||
exports.jst = {
|
||||
main: function(test) {
|
||||
|
||||
var expect, result;
|
||||
|
||||
test.expect(10);
|
||||
|
||||
expect = readFile('test/expected/jst.js');
|
||||
result = readFile('tmp/jst.js');
|
||||
test.equal(expect, result, 'should compile underscore templates into JST');
|
||||
|
||||
expect = readFile('test/expected/uglyfile.js');
|
||||
result = readFile('tmp/uglyfile.js');
|
||||
test.equal(expect, result, 'should escape single quotes in filenames');
|
||||
|
||||
expect = readFile('test/expected/ns_nested.js');
|
||||
result = readFile('tmp/ns_nested.js');
|
||||
test.equal(expect, result, 'should define parts of nested namespaces');
|
||||
|
||||
expect = readFile('test/expected/ns_nested.js'); // same as previous test
|
||||
result = readFile('tmp/ns_nested_this.js');
|
||||
test.equal(expect, result, 'should define parts of nested namespaces, ignoring this.');
|
||||
|
||||
expect = readFile('test/expected/pretty.js');
|
||||
result = readFile('tmp/pretty.js');
|
||||
test.equal(expect, result, 'should make the output be 1 line per template, making the output less ugly');
|
||||
|
||||
expect = readFile('test/expected/amd_wrapper.js');
|
||||
result = readFile('tmp/amd_wrapper.js');
|
||||
test.equal(expect, result, 'should wrap the template with define for AMD pattern');
|
||||
|
||||
expect = readFile('test/expected/amd_wrapper_no_ns.js');
|
||||
result = readFile('tmp/amd_wrapper_no_ns.js');
|
||||
test.equal(expect, result, 'should wrap the template with define for AMD pattern and return the function itself with no namespace');
|
||||
|
||||
expect = readFile('test/expected/pretty_amd.js');
|
||||
result = readFile('tmp/pretty_amd.js');
|
||||
test.equal(expect, result, 'should make the AMD wrapper output pretty');
|
||||
|
||||
expect = readFile('test/expected/process_content.js');
|
||||
result = readFile('tmp/process_content.js');
|
||||
test.equal(expect, result, 'should convert file content');
|
||||
|
||||
expect = readFile('test/expected/local_scope.js');
|
||||
result = readFile('tmp/local_scope.js');
|
||||
test.equal(expect, result, 'should add `with` block when templateSettings.variable is undefined');
|
||||
|
||||
test.done();
|
||||
}
|
||||
};
|
||||
|
Loading…
Reference in New Issue
Block a user