diff --git a/History.md b/History.md index 6284863..0f8a0bc 100644 --- a/History.md +++ b/History.md @@ -1,3 +1,8 @@ +unreleased +========== + + * switch to {{ }} for templates. This is more versatile. + 1.1.1 / 2014-05-13 ========== diff --git a/lib/utils.js b/lib/utils.js index 6a9a858..732e693 100644 --- a/lib/utils.js +++ b/lib/utils.js @@ -37,7 +37,7 @@ var props = function(str) { exports.interpolationProps = function(str) { var m; var arr = []; - var re = /\{([^}]+)\}/g; + var re = /\{\{([^}]+)\}\}/g; while (m = re.exec(str)) { var expr = m[1]; @@ -57,7 +57,7 @@ exports.interpolationProps = function(str) { */ exports.interpolate = function(str, fn){ - return str.replace(/\{([^}]+)\}/g, function(_, expr){ + return str.replace(/\{\{([^}]+)\}\}/g, function(_, expr){ var cb = cache[expr]; if (!cb) cb = cache[expr] = compile(expr); var val = fn(expr.trim(), cb); @@ -74,7 +74,7 @@ exports.interpolate = function(str, fn){ */ exports.hasInterpolation = function(str) { - return ~str.indexOf('{'); + return ~str.indexOf('{{'); }; /** diff --git a/package.json b/package.json index 9207f94..fc9712c 100644 --- a/package.json +++ b/package.json @@ -21,7 +21,7 @@ "clone": "clone-component" }, "devDependencies": { - "zuul": "~1.5.4", + "zuul": "~1.6.4", "clone-component": "component/clone#acfb79aa", "better-assert": "~1.0.0", "mocha": "~1.17.0" diff --git a/test/attr-interpolation.js b/test/attr-interpolation.js index 43f3d5b..a2ee11c 100644 --- a/test/attr-interpolation.js +++ b/test/attr-interpolation.js @@ -5,21 +5,21 @@ var reactive = require('../'); describe('attr interpolation', function(){ it('should support initialization', function(){ - var el = domify(''); + var el = domify(''); var user = { id: '1234' }; var view = reactive(el, user); assert('/download/1234' == el.getAttribute('href')); }) it('should ignore whitespace', function(){ - var el = domify(''); + var el = domify(''); var user = { id: '1234' }; var view = reactive(el, user); assert('/download/1234' == el.getAttribute('href')); }) it('should react to changes', function(){ - var el = domify(''); + var el = domify(''); var user = { id: '1234' }; var view = reactive(el, user); @@ -30,7 +30,7 @@ describe('attr interpolation', function(){ }) it('should support multiple attributes', function(){ - var el = domify('Download {file}'); + var el = domify('Download {{file}}'); var user = { id: '1234' }; var view = reactive(el, user); @@ -43,7 +43,7 @@ describe('attr interpolation', function(){ }) it('should support multiple properties', function(){ - var el = domify(''); + var el = domify(''); var user = { id: '1234', file: 'something' }; var view = reactive(el, user); diff --git a/test/each.js b/test/each.js index 1731121..443adee 100644 --- a/test/each.js +++ b/test/each.js @@ -5,13 +5,13 @@ var reactive = require('../'); describe('each', function(){ it('empty should not fail', function(){ - var el = domify('
{name}
{age}
{{name}}
{{age}}
{first} {last} is a {species}
{{first}} {{last}} is a {{species}}
{first + " " + last}
'); + var el = domify('{{first + " " + last}}
'); var pet = { first: 'tobi', last: 'holowaychuk' }; var view = reactive(el, pet); @@ -55,7 +55,7 @@ describe('text interpolation', function(){ }) it('should support model method calls as properties', function(){ - var el = domify('first: {first}
'); + var el = domify('first: {{first}}
'); var pet = { first: function(){ @@ -68,7 +68,7 @@ describe('text interpolation', function(){ }) it('should support complex expressions', function(){ - var el = domify('first: {siblings[0]}, last: {siblings[siblings.length - 1]}
'); + var el = domify('first: {{siblings[0]}}, last: {{siblings[siblings.length - 1]}}
'); var pet = { siblings: [ @@ -86,7 +86,7 @@ describe('text interpolation', function(){ }) it('should support complex model method calls as properties', function(){ - var el = domify('name: {casual ? first : first + " " + last}
'); + var el = domify('name: {{casual ? first : first + " " + last}}
'); var pet = { casual: function(){ return false }, @@ -99,7 +99,7 @@ describe('text interpolation', function(){ }) it('should support method calls as properties on the view', function(){ - var el = domify('name: {casual}
'); + var el = domify('name: {{casual}}
'); var pet = { casual: function(){ return false }, @@ -119,7 +119,7 @@ describe('text interpolation', function(){ }) it('should support the root element', function(){ - var el = domify('Hello {name}'); + var el = domify('
Hello {{name}}'); var user = { name: 'Tobi' }; reactive(el, user); assert('Hello Tobi' == el.textContent); @@ -127,17 +127,17 @@ describe('text interpolation', function(){ it('should support calling a property as a function', function(){ var model = { name: { first: 'Some Really Long Name' } }; - var view = reactive('
Hello {name.first.slice(0,6)}
', model); + var view = reactive('Hello {{name.first.slice(0,6)}}
', model); assert('Hello Some R' == view.el.textContent); var model = { name: 'Some Really Long Name' }; - var view = reactive('Hello {name.slice(0,4)}
', model); + var view = reactive('Hello {{name.slice(0,4)}}
', model); assert('Hello Some' == view.el.textContent); }) it('should support setting base property', function(){ var model = { name: { first: 'foobar' } }; - var view = reactive('{name.first}
', model); + var view = reactive('{{name.first}}
', model); assert('foobar' == view.el.textContent); view.set('name', { first: 'baz' });