Bläddra i källkod

Writer.prototype.parse to cache by tags in addition to template string

tags/v2.3.1
raymond.lam 9 år sedan
förälder
incheckning
24653984d0
2 ändrade filer med 33 tillägg och 1 borttagningar
  1. +1
    -1
      mustache.js
  2. +32
    -0
      test/parse-test.js

+ 1
- 1
mustache.js Visa fil

@@ -447,7 +447,7 @@
var tokens = cache[template];

if (tokens == null)
tokens = cache[template] = parseTemplate(template, tags);
tokens = cache[template + ':' + (tags || mustache.tags).join(':')] = parseTemplate(template, tags);

return tokens;
};


+ 32
- 0
test/parse-test.js Visa fil

@@ -103,4 +103,36 @@ describe('Mustache.parse', function () {
});
});

describe('when parsing a template without tags specified followed by the same template with tags specified', function() {
it('returns different tokens for the latter parse', function() {
var template = "{{foo}}[bar]";
var parsedWithBraces = Mustache.parse(template);
var parsedWithBrackets = Mustache.parse(template, ['[', ']']);
assert.notDeepEqual(parsedWithBrackets, parsedWithBraces);
});
});

describe('when parsing a template with tags specified followed by the same template with different tags specified', function() {
it('returns different tokens for the latter parse', function() {
var template = "(foo)[bar]";
var parsedWithParens = Mustache.parse(template, ['(', ')']);
var parsedWithBrackets = Mustache.parse(template, ['[', ']']);
assert.notDeepEqual(parsedWithBrackets, parsedWithParens);
});
});

describe('when parsing a template after already having parsed that template with a different Mustache.tags', function() {
it('returns different tokens for the latter parse', function() {
var template = "{{foo}}[bar]";
var parsedWithBraces = Mustache.parse(template, ['(', ')']);

var oldTags = Mustache.tags;
Mustache.tags = ['[', ']'];
var parsedWithBrackets = Mustache.parse(template);
Mustache.tags = oldTags;

assert.notDeepEqual(parsedWithBrackets, parsedWithBraces);
});
});

});

Laddar…
Avbryt
Spara