Skip to content

Commit 997947d

Browse files
committed
Add support for eq, ne
1 parent 7bbdb8b commit 997947d

File tree

3 files changed

+19
-6
lines changed

3 files changed

+19
-6
lines changed

CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@ Changelog
44

55
### 0.20.2
66
- Add support for logical operators: `&&`/`and`, `||`/`or`
7+
- Add support for equality operator keywords: `eq`, `ne`
78

89
### 0.20.1
910
- Fix `Node is not defined` errors when using Thymeleaf in a NodeJS environment,

source/standard/expressions/ThymeleafExpressionLanguage.js

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -360,15 +360,17 @@ const ThymeleafExpressionLanguage = new Grammar('Thymeleaf Expression Language',
360360
let rhs = rightOperand(context);
361361
switch (operator(context)) {
362362
case '==': return lhs == rhs; // eslint-disable-line
363+
case 'eq':
363364
case '===': return lhs === rhs;
364365
case '!=': return lhs != rhs; // eslint-disable-line
366+
case 'ne':
365367
case '!==': return lhs !== rhs;
366368
}
367369
return false;
368370
}
369371
),
370372
new ThymeleafRule('EqualityOperator',
371-
OrderedChoice(/[=!]==?/)
373+
OrderedChoice(/[=!]==?/, /eq/, /ne/)
372374
),
373375

374376

test/standard/expressions/ThymeleafExpressionLanguage.js

Lines changed: 15 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -263,14 +263,24 @@ describe('standard/expressions/ThymeleafExpressionLanguage', function() {
263263
});
264264
});
265265

266-
267-
describe('#Condition', function() {
266+
describe('#EqualityOperation', function() {
268267

269268
test('${var} === literal', function() {
270-
let result = expressionProcessor.process('${number} === 3', {
271-
number: 3
269+
['===', 'eq'].forEach(symbol => {
270+
let result = expressionProcessor.process(`\${number} ${symbol} 3`, {
271+
number: 3
272+
});
273+
expect(result).toBe(true);
274+
});
275+
});
276+
277+
test('${var} !== literal', function() {
278+
['!==', 'ne'].forEach(symbol => {
279+
let result = expressionProcessor.process(`\${number} ${symbol} 3`, {
280+
number: 3
281+
});
282+
expect(result).toBe(false);
272283
});
273-
expect(result).toBe(true);
274284
});
275285
});
276286

0 commit comments

Comments
 (0)