ソースを参照

Allow JavaScript views to have the .cjs suffix.

pull/733/head
Eamonn O'Brien-Strain 6年前
コミット
b4f58f3ff7
5個のファイルの変更29行の追加3行の削除
  1. +2
    -1
      bin/mustache
  2. +3
    -0
      test/_files/cli.cjs
  3. +3
    -0
      test/_files/cli.js
  4. +18
    -0
      test/cli-test.js
  5. +3
    -2
      test/render-helper.js

+ 2
- 1
bin/mustache ファイルの表示

@@ -131,7 +131,8 @@ function isStdin (view) {
}

function isJsFile (view) {
return path.extname(view) === '.js';
var extension = path.extname(view);
return extension === '.js' || extension === '.cjs';
}

function wasNotFound (err) {


+ 3
- 0
test/_files/cli.cjs ファイルの表示

@@ -0,0 +1,3 @@
module.exports = {
name: 'LeBron'
};

+ 3
- 0
test/_files/cli.js ファイルの表示

@@ -0,0 +1,3 @@
module.exports = {
name: 'LeBron'
};

+ 18
- 0
test/cli-test.js ファイルの表示

@@ -76,6 +76,24 @@ describe('Mustache CLI', function () {
});
});

it('can handle view written in JavaScript with .js suffix', function (done) {
exec('bin/mustache test/_files/cli.js test/_files/cli.mustache', function (err, stdout, stderr) {
assert.equal(err, null);
assert.equal(stderr, '');
assert.equal(stdout, expectedOutput);
done();
});
});

it('can handle view written in JavaScript with .cjs suffix', function (done) {
exec('bin/mustache test/_files/cli.cjs test/_files/cli.mustache', function (err, stdout, stderr) {
assert.equal(err, null);
assert.equal(stderr, '');
assert.equal(stdout, expectedOutput);
done();
});
});

it('writes rendered template into the file specified by the third argument', function (done) {
var outputFile = 'test/_files/cli_output.txt';
exec('bin/mustache test/_files/cli.json test/_files/cli.mustache ' + outputFile, function (err, stdout, stderr) {


+ 3
- 2
test/render-helper.js ファイルの表示

@@ -13,6 +13,7 @@ function getContents (testName, ext) {

function getView (testName) {
var view = getContents(testName, 'js');
if (!view) view = getContents(testName, 'cjs');
if (!view) throw new Error('Cannot find view for test "' + testName + '"');
return view;
}
@@ -34,9 +35,9 @@ if (testToRun) {
testNames = testToRun.split(',');
} else {
testNames = fs.readdirSync(_files).filter(function (file) {
return (/\.js$/).test(file);
return (/\.c?js$/).test(file);
}).map(function (file) {
return path.basename(file).replace(/\.js$/, '');
return path.basename(file).replace(/\.c?js$/, '');
});
}



読み込み中…
キャンセル
保存