Comparing version 0.8.1 to 0.9.0
{ | ||
"name": "combyne", | ||
"version": "0.8.1", | ||
"version": "0.9.0", | ||
"main": "dist/combyne.js", | ||
@@ -5,0 +5,0 @@ "devDependencies": { |
@@ -1,13 +0,13 @@ | ||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.combyne = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.combyne = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var registerPartial = require('./shared/register_partial'); | ||
var registerFilter = require('./shared/register_filter'); | ||
var getPartial = require('./shared/get_partial'); | ||
var getFilter = require('./shared/get_filter'); | ||
var map = require('./shared/map'); | ||
var encode = require('./shared/encode'); | ||
var type = require('./utils/type'); | ||
var createObject = require('./utils/create_object'); | ||
require('./support/array/map'); | ||
require('./support/array/reduce'); | ||
var registerPartial = _dereq_('./shared/register_partial'); | ||
var registerFilter = _dereq_('./shared/register_filter'); | ||
var getPartial = _dereq_('./shared/get_partial'); | ||
var getFilter = _dereq_('./shared/get_filter'); | ||
var map = _dereq_('./shared/map'); | ||
var encode = _dereq_('./shared/encode'); | ||
var type = _dereq_('./utils/type'); | ||
var createObject = _dereq_('./utils/create_object'); | ||
_dereq_('./support/array/map'); | ||
_dereq_('./support/array/reduce'); | ||
var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g; | ||
@@ -62,4 +62,11 @@ var escapes = { | ||
'render: function(data) {', | ||
'return ' + this.func + '(data, this)', | ||
'try {', | ||
'return ' + this.func + '(data, this);', | ||
'} catch (ex) {', | ||
type, | ||
encode, | ||
'console.error(ex);', | ||
'return \'<pre>\' + encode(ex + ex.stack) + \'</pre>\';', | ||
'}', | ||
'}', | ||
'}' | ||
@@ -238,7 +245,7 @@ ].join('\n'); | ||
module.exports = Compiler; | ||
},{"./shared/encode":4,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/map":7,"./shared/register_filter":8,"./shared/register_partial":9,"./support/array/map":11,"./support/array/reduce":12,"./utils/create_object":17,"./utils/type":21}],2:[function(require,module,exports){ | ||
},{"./shared/encode":4,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/map":7,"./shared/register_filter":8,"./shared/register_partial":9,"./support/array/map":11,"./support/array/reduce":12,"./utils/create_object":17,"./utils/type":21}],2:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var escapeDelimiter = require('./utils/escape_delimiter'); | ||
require('./support/array/map'); | ||
require('./support/array/some'); | ||
var escapeDelimiter = _dereq_('./utils/escape_delimiter'); | ||
_dereq_('./support/array/map'); | ||
_dereq_('./support/array/some'); | ||
function Grammar(delimiters) { | ||
@@ -305,14 +312,14 @@ this.delimiters = delimiters; | ||
module.exports = Grammar; | ||
},{"./support/array/map":11,"./support/array/some":13,"./utils/escape_delimiter":19}],3:[function(require,module,exports){ | ||
},{"./support/array/map":11,"./support/array/some":13,"./utils/escape_delimiter":19}],3:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var Grammar = require('./grammar'); | ||
var Tokenizer = require('./tokenizer'); | ||
var Tree = require('./tree'); | ||
var Compiler = require('./compiler'); | ||
var registerPartial = require('./shared/register_partial'); | ||
var registerFilter = require('./shared/register_filter'); | ||
var getPartial = require('./shared/get_partial'); | ||
var getFilter = require('./shared/get_filter'); | ||
var type = require('./utils/type'); | ||
var defaults = require('./utils/defaults'); | ||
var Grammar = _dereq_('./grammar'); | ||
var Tokenizer = _dereq_('./tokenizer'); | ||
var Tree = _dereq_('./tree'); | ||
var Compiler = _dereq_('./compiler'); | ||
var registerPartial = _dereq_('./shared/register_partial'); | ||
var registerFilter = _dereq_('./shared/register_filter'); | ||
var getPartial = _dereq_('./shared/get_partial'); | ||
var getFilter = _dereq_('./shared/get_filter'); | ||
var type = _dereq_('./utils/type'); | ||
var defaults = _dereq_('./utils/defaults'); | ||
var defaultDelimiters = { | ||
@@ -357,7 +364,7 @@ START_RAW: '{{{', | ||
}; | ||
Combyne.VERSION = '0.8.1'; | ||
Combyne.VERSION = '0.9.0'; | ||
module.exports = Combyne; | ||
},{"./compiler":1,"./grammar":2,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/register_filter":8,"./shared/register_partial":9,"./tokenizer":15,"./tree":16,"./utils/defaults":18,"./utils/type":21}],4:[function(require,module,exports){ | ||
},{"./compiler":1,"./grammar":2,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/register_filter":8,"./shared/register_partial":9,"./tokenizer":15,"./tree":16,"./utils/defaults":18,"./utils/type":21}],4:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var type = require('../utils/type'); | ||
var type = _dereq_('../utils/type'); | ||
function encode(raw) { | ||
@@ -372,3 +379,3 @@ if (type(raw) !== 'string') { | ||
module.exports = encode; | ||
},{"../utils/type":21}],5:[function(require,module,exports){ | ||
},{"../utils/type":21}],5:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -384,3 +391,3 @@ function getFilter(name) { | ||
module.exports = getFilter; | ||
},{}],6:[function(require,module,exports){ | ||
},{}],6:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -396,7 +403,7 @@ function getPartial(name) { | ||
module.exports = getPartial; | ||
},{}],7:[function(require,module,exports){ | ||
},{}],7:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var type = require('../utils/type'); | ||
var createObject = require('../utils/create_object'); | ||
require('../support/array/is_array'); | ||
var type = _dereq_('../utils/type'); | ||
var createObject = _dereq_('../utils/create_object'); | ||
_dereq_('../support/array/is_array'); | ||
function map(obj, index, value, data, iterator) { | ||
@@ -438,3 +445,3 @@ var isArrayLike = type(obj) === 'arguments' || type(obj) === 'nodelist'; | ||
module.exports = map; | ||
},{"../support/array/is_array":10,"../utils/create_object":17,"../utils/type":21}],8:[function(require,module,exports){ | ||
},{"../support/array/is_array":10,"../utils/create_object":17,"../utils/type":21}],8:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -445,3 +452,3 @@ function registerFilter(name, callback) { | ||
module.exports = registerFilter; | ||
},{}],9:[function(require,module,exports){ | ||
},{}],9:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -453,5 +460,5 @@ function registerPartial(partialName, template) { | ||
module.exports = registerPartial; | ||
},{}],10:[function(require,module,exports){ | ||
},{}],10:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var type = require('../../utils/type'); | ||
var type = _dereq_('../../utils/type'); | ||
if (Array.isArray) { | ||
@@ -464,3 +471,3 @@ return isArray; | ||
module.exports = Array.isArray = isArray; | ||
},{"../../utils/type":21}],11:[function(require,module,exports){ | ||
},{"../../utils/type":21}],11:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -488,3 +495,3 @@ if (Array.prototype.map) { | ||
module.exports = Array.prototype.map = map; | ||
},{}],12:[function(require,module,exports){ | ||
},{}],12:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -510,3 +517,3 @@ if (Array.prototype.reduce) { | ||
module.exports = Array.prototype.reduce = reduce; | ||
},{}],13:[function(require,module,exports){ | ||
},{}],13:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -535,3 +542,3 @@ if (Array.prototype.some) { | ||
module.exports = Array.prototype.some = some; | ||
},{}],14:[function(require,module,exports){ | ||
},{}],14:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -545,5 +552,5 @@ if (String.prototype.trim) { | ||
module.exports = String.prototype.trim = trim; | ||
},{}],15:[function(require,module,exports){ | ||
},{}],15:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
require('./support/array/some'); | ||
_dereq_('./support/array/some'); | ||
function Tokenizer(template, grammar) { | ||
@@ -583,6 +590,6 @@ this.template = template; | ||
module.exports = Tokenizer; | ||
},{"./support/array/some":13}],16:[function(require,module,exports){ | ||
},{"./support/array/some":13}],16:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
require('./support/string/trim'); | ||
var parseProperty = require('./utils/parse_property'); | ||
_dereq_('./support/string/trim'); | ||
var parseProperty = _dereq_('./utils/parse_property'); | ||
function Tree(stack) { | ||
@@ -811,7 +818,26 @@ this.stack = stack.slice(); | ||
var isLeftSide = true; | ||
var splitArg = false; | ||
var hasKey = false; | ||
var handleConditionArgument = function (prev) { | ||
if (!splitArg && prev && prev.type === 'Identifier') { | ||
prev.value += node.capture[0]; | ||
} else { | ||
root.conditions.push({ | ||
type: 'Identifier', | ||
value: node.capture[0] | ||
}); | ||
hasKey = true; | ||
} | ||
}; | ||
LOOP: | ||
while (this.stack.length) { | ||
var node = this.stack.shift(); | ||
var conditions = root.conditions; | ||
var prev = conditions.length && conditions[conditions.length - 1]; | ||
switch (node.name) { | ||
case 'ASSIGN': | ||
if (!isLeftSide) { | ||
handleConditionArgument(prev); | ||
break; | ||
} | ||
isLeftSide = false; | ||
@@ -826,9 +852,9 @@ root.conditions.push({ | ||
case 'WHITESPACE': | ||
if (!isLeftSide && hasKey) { | ||
splitArg = true; | ||
} | ||
break; | ||
default: | ||
if (!isLeftSide) { | ||
root.conditions.push({ | ||
type: 'Identifier', | ||
value: node.capture[0].trim() | ||
}); | ||
handleConditionArgument(prev); | ||
} else { | ||
@@ -965,3 +991,3 @@ this.stack.unshift(node); | ||
module.exports = Tree; | ||
},{"./support/string/trim":14,"./utils/parse_property":20}],17:[function(require,module,exports){ | ||
},{"./support/string/trim":14,"./utils/parse_property":20}],17:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -975,3 +1001,3 @@ function createObject(parent) { | ||
module.exports = createObject; | ||
},{}],18:[function(require,module,exports){ | ||
},{}],18:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -992,3 +1018,3 @@ function defaults(target, source) { | ||
module.exports = defaults; | ||
},{}],19:[function(require,module,exports){ | ||
},{}],19:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1000,3 +1026,3 @@ var specialCharsExp = /[\^$\\\/.*+?()\[\]{}|]/g; | ||
module.exports = escapeDelimiter; | ||
},{}],20:[function(require,module,exports){ | ||
},{}],20:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1019,3 +1045,3 @@ var isString = /['"]+/; | ||
module.exports = parseProperty; | ||
},{}],21:[function(require,module,exports){ | ||
},{}],21:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1022,0 +1048,0 @@ function type(value) { |
@@ -1,13 +0,13 @@ | ||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.combyne = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(require,module,exports){ | ||
(function(f){if(typeof exports==="object"&&typeof module!=="undefined"){module.exports=f()}else if(typeof define==="function"&&define.amd){define([],f)}else{var g;if(typeof window!=="undefined"){g=window}else if(typeof global!=="undefined"){g=global}else if(typeof self!=="undefined"){g=self}else{g=this}g.combyne = f()}})(function(){var define,module,exports;return (function e(t,n,r){function s(o,u){if(!n[o]){if(!t[o]){var a=typeof require=="function"&&require;if(!u&&a)return a(o,!0);if(i)return i(o,!0);var f=new Error("Cannot find module '"+o+"'");throw f.code="MODULE_NOT_FOUND",f}var l=n[o]={exports:{}};t[o][0].call(l.exports,function(e){var n=t[o][1][e];return s(n?n:e)},l,l.exports,e,t,n,r)}return n[o].exports}var i=typeof require=="function"&&require;for(var o=0;o<r.length;o++)s(r[o]);return s})({1:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var registerPartial = require('./shared/register_partial'); | ||
var registerFilter = require('./shared/register_filter'); | ||
var getPartial = require('./shared/get_partial'); | ||
var getFilter = require('./shared/get_filter'); | ||
var map = require('./shared/map'); | ||
var encode = require('./shared/encode'); | ||
var type = require('./utils/type'); | ||
var createObject = require('./utils/create_object'); | ||
require('./support/array/map'); | ||
require('./support/array/reduce'); | ||
var registerPartial = _dereq_('./shared/register_partial'); | ||
var registerFilter = _dereq_('./shared/register_filter'); | ||
var getPartial = _dereq_('./shared/get_partial'); | ||
var getFilter = _dereq_('./shared/get_filter'); | ||
var map = _dereq_('./shared/map'); | ||
var encode = _dereq_('./shared/encode'); | ||
var type = _dereq_('./utils/type'); | ||
var createObject = _dereq_('./utils/create_object'); | ||
_dereq_('./support/array/map'); | ||
_dereq_('./support/array/reduce'); | ||
var escaper = /\\|'|\r|\n|\t|\u2028|\u2029/g; | ||
@@ -62,4 +62,11 @@ var escapes = { | ||
'render: function(data) {', | ||
'return ' + this.func + '(data, this)', | ||
'try {', | ||
'return ' + this.func + '(data, this);', | ||
'} catch (ex) {', | ||
type, | ||
encode, | ||
'console.error(ex);', | ||
'return \'<pre>\' + encode(ex + ex.stack) + \'</pre>\';', | ||
'}', | ||
'}', | ||
'}' | ||
@@ -238,7 +245,7 @@ ].join('\n'); | ||
module.exports = Compiler; | ||
},{"./shared/encode":4,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/map":7,"./shared/register_filter":8,"./shared/register_partial":9,"./support/array/map":11,"./support/array/reduce":12,"./utils/create_object":17,"./utils/type":21}],2:[function(require,module,exports){ | ||
},{"./shared/encode":4,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/map":7,"./shared/register_filter":8,"./shared/register_partial":9,"./support/array/map":11,"./support/array/reduce":12,"./utils/create_object":17,"./utils/type":21}],2:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var escapeDelimiter = require('./utils/escape_delimiter'); | ||
require('./support/array/map'); | ||
require('./support/array/some'); | ||
var escapeDelimiter = _dereq_('./utils/escape_delimiter'); | ||
_dereq_('./support/array/map'); | ||
_dereq_('./support/array/some'); | ||
function Grammar(delimiters) { | ||
@@ -305,14 +312,14 @@ this.delimiters = delimiters; | ||
module.exports = Grammar; | ||
},{"./support/array/map":11,"./support/array/some":13,"./utils/escape_delimiter":19}],3:[function(require,module,exports){ | ||
},{"./support/array/map":11,"./support/array/some":13,"./utils/escape_delimiter":19}],3:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var Grammar = require('./grammar'); | ||
var Tokenizer = require('./tokenizer'); | ||
var Tree = require('./tree'); | ||
var Compiler = require('./compiler'); | ||
var registerPartial = require('./shared/register_partial'); | ||
var registerFilter = require('./shared/register_filter'); | ||
var getPartial = require('./shared/get_partial'); | ||
var getFilter = require('./shared/get_filter'); | ||
var type = require('./utils/type'); | ||
var defaults = require('./utils/defaults'); | ||
var Grammar = _dereq_('./grammar'); | ||
var Tokenizer = _dereq_('./tokenizer'); | ||
var Tree = _dereq_('./tree'); | ||
var Compiler = _dereq_('./compiler'); | ||
var registerPartial = _dereq_('./shared/register_partial'); | ||
var registerFilter = _dereq_('./shared/register_filter'); | ||
var getPartial = _dereq_('./shared/get_partial'); | ||
var getFilter = _dereq_('./shared/get_filter'); | ||
var type = _dereq_('./utils/type'); | ||
var defaults = _dereq_('./utils/defaults'); | ||
var defaultDelimiters = { | ||
@@ -357,7 +364,7 @@ START_RAW: '{{{', | ||
}; | ||
Combyne.VERSION = '0.8.1'; | ||
Combyne.VERSION = '0.9.0'; | ||
module.exports = Combyne; | ||
},{"./compiler":1,"./grammar":2,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/register_filter":8,"./shared/register_partial":9,"./tokenizer":15,"./tree":16,"./utils/defaults":18,"./utils/type":21}],4:[function(require,module,exports){ | ||
},{"./compiler":1,"./grammar":2,"./shared/get_filter":5,"./shared/get_partial":6,"./shared/register_filter":8,"./shared/register_partial":9,"./tokenizer":15,"./tree":16,"./utils/defaults":18,"./utils/type":21}],4:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var type = require('../utils/type'); | ||
var type = _dereq_('../utils/type'); | ||
function encode(raw) { | ||
@@ -372,3 +379,3 @@ if (type(raw) !== 'string') { | ||
module.exports = encode; | ||
},{"../utils/type":21}],5:[function(require,module,exports){ | ||
},{"../utils/type":21}],5:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -384,3 +391,3 @@ function getFilter(name) { | ||
module.exports = getFilter; | ||
},{}],6:[function(require,module,exports){ | ||
},{}],6:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -396,7 +403,7 @@ function getPartial(name) { | ||
module.exports = getPartial; | ||
},{}],7:[function(require,module,exports){ | ||
},{}],7:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var type = require('../utils/type'); | ||
var createObject = require('../utils/create_object'); | ||
require('../support/array/is_array'); | ||
var type = _dereq_('../utils/type'); | ||
var createObject = _dereq_('../utils/create_object'); | ||
_dereq_('../support/array/is_array'); | ||
function map(obj, index, value, data, iterator) { | ||
@@ -438,3 +445,3 @@ var isArrayLike = type(obj) === 'arguments' || type(obj) === 'nodelist'; | ||
module.exports = map; | ||
},{"../support/array/is_array":10,"../utils/create_object":17,"../utils/type":21}],8:[function(require,module,exports){ | ||
},{"../support/array/is_array":10,"../utils/create_object":17,"../utils/type":21}],8:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -445,3 +452,3 @@ function registerFilter(name, callback) { | ||
module.exports = registerFilter; | ||
},{}],9:[function(require,module,exports){ | ||
},{}],9:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -453,5 +460,5 @@ function registerPartial(partialName, template) { | ||
module.exports = registerPartial; | ||
},{}],10:[function(require,module,exports){ | ||
},{}],10:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
var type = require('../../utils/type'); | ||
var type = _dereq_('../../utils/type'); | ||
if (Array.isArray) { | ||
@@ -464,3 +471,3 @@ return isArray; | ||
module.exports = Array.isArray = isArray; | ||
},{"../../utils/type":21}],11:[function(require,module,exports){ | ||
},{"../../utils/type":21}],11:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -488,3 +495,3 @@ if (Array.prototype.map) { | ||
module.exports = Array.prototype.map = map; | ||
},{}],12:[function(require,module,exports){ | ||
},{}],12:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -510,3 +517,3 @@ if (Array.prototype.reduce) { | ||
module.exports = Array.prototype.reduce = reduce; | ||
},{}],13:[function(require,module,exports){ | ||
},{}],13:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -535,3 +542,3 @@ if (Array.prototype.some) { | ||
module.exports = Array.prototype.some = some; | ||
},{}],14:[function(require,module,exports){ | ||
},{}],14:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -545,5 +552,5 @@ if (String.prototype.trim) { | ||
module.exports = String.prototype.trim = trim; | ||
},{}],15:[function(require,module,exports){ | ||
},{}],15:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
require('./support/array/some'); | ||
_dereq_('./support/array/some'); | ||
function Tokenizer(template, grammar) { | ||
@@ -583,6 +590,6 @@ this.template = template; | ||
module.exports = Tokenizer; | ||
},{"./support/array/some":13}],16:[function(require,module,exports){ | ||
},{"./support/array/some":13}],16:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
require('./support/string/trim'); | ||
var parseProperty = require('./utils/parse_property'); | ||
_dereq_('./support/string/trim'); | ||
var parseProperty = _dereq_('./utils/parse_property'); | ||
function Tree(stack) { | ||
@@ -811,7 +818,26 @@ this.stack = stack.slice(); | ||
var isLeftSide = true; | ||
var splitArg = false; | ||
var hasKey = false; | ||
var handleConditionArgument = function (prev) { | ||
if (!splitArg && prev && prev.type === 'Identifier') { | ||
prev.value += node.capture[0]; | ||
} else { | ||
root.conditions.push({ | ||
type: 'Identifier', | ||
value: node.capture[0] | ||
}); | ||
hasKey = true; | ||
} | ||
}; | ||
LOOP: | ||
while (this.stack.length) { | ||
var node = this.stack.shift(); | ||
var conditions = root.conditions; | ||
var prev = conditions.length && conditions[conditions.length - 1]; | ||
switch (node.name) { | ||
case 'ASSIGN': | ||
if (!isLeftSide) { | ||
handleConditionArgument(prev); | ||
break; | ||
} | ||
isLeftSide = false; | ||
@@ -826,9 +852,9 @@ root.conditions.push({ | ||
case 'WHITESPACE': | ||
if (!isLeftSide && hasKey) { | ||
splitArg = true; | ||
} | ||
break; | ||
default: | ||
if (!isLeftSide) { | ||
root.conditions.push({ | ||
type: 'Identifier', | ||
value: node.capture[0].trim() | ||
}); | ||
handleConditionArgument(prev); | ||
} else { | ||
@@ -965,3 +991,3 @@ this.stack.unshift(node); | ||
module.exports = Tree; | ||
},{"./support/string/trim":14,"./utils/parse_property":20}],17:[function(require,module,exports){ | ||
},{"./support/string/trim":14,"./utils/parse_property":20}],17:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -975,3 +1001,3 @@ function createObject(parent) { | ||
module.exports = createObject; | ||
},{}],18:[function(require,module,exports){ | ||
},{}],18:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -992,3 +1018,3 @@ function defaults(target, source) { | ||
module.exports = defaults; | ||
},{}],19:[function(require,module,exports){ | ||
},{}],19:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1000,3 +1026,3 @@ var specialCharsExp = /[\^$\\\/.*+?()\[\]{}|]/g; | ||
module.exports = escapeDelimiter; | ||
},{}],20:[function(require,module,exports){ | ||
},{}],20:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1019,3 +1045,3 @@ var isString = /['"]+/; | ||
module.exports = parseProperty; | ||
},{}],21:[function(require,module,exports){ | ||
},{}],21:[function(_dereq_,module,exports){ | ||
'use strict'; | ||
@@ -1022,0 +1048,0 @@ function type(value) { |
@@ -134,3 +134,9 @@ /** | ||
"render: function(data) {", | ||
"return " + this.func + "(data, this)", | ||
"try {", | ||
"return " + this.func + "(data, this);", | ||
"} catch (ex) {", | ||
type, encode, | ||
"console.error(ex);", | ||
"return '<pre>' + encode(ex + ex.stack) + '</pre>';", | ||
"}", | ||
"}", | ||
@@ -137,0 +143,0 @@ "}" |
@@ -159,5 +159,5 @@ /** | ||
*/ | ||
Combyne.VERSION = "0.8.1"; | ||
Combyne.VERSION = "0.9.0"; | ||
module.exports = Combyne; | ||
}); |
@@ -407,8 +407,35 @@ /** | ||
// Iteration arguments are whitespace separated. | ||
var splitArg = false; | ||
// The key name has been detected. | ||
var hasKey = false; | ||
var handleConditionArgument = function(prev) { | ||
if (!splitArg && prev && prev.type === "Identifier") { | ||
prev.value += node.capture[0]; | ||
} | ||
else { | ||
root.conditions.push({ | ||
type: "Identifier", | ||
value: node.capture[0] | ||
}); | ||
hasKey = true; | ||
} | ||
}; | ||
LOOP: | ||
while (this.stack.length) { | ||
var node = this.stack.shift(); | ||
var conditions = root.conditions; | ||
var prev = conditions.length && conditions[conditions.length - 1]; | ||
switch (node.name) { | ||
case "ASSIGN": | ||
if (!isLeftSide) { | ||
handleConditionArgument(prev); | ||
break; | ||
} | ||
isLeftSide = false; | ||
@@ -427,2 +454,6 @@ | ||
case "WHITESPACE": | ||
if (!isLeftSide && hasKey) { | ||
splitArg = true; | ||
} | ||
break; | ||
@@ -434,6 +465,3 @@ | ||
if (!isLeftSide) { | ||
root.conditions.push({ | ||
type: "Identifier", | ||
value: node.capture[0].trim() | ||
}); | ||
handleConditionArgument(prev); | ||
} | ||
@@ -440,0 +468,0 @@ else { |
{ | ||
"name": "combyne", | ||
"description": "A template engine that works the way you expect.", | ||
"version": "0.8.1", | ||
"version": "0.9.0", | ||
"author": "Tim Branyen (@tbranyen)", | ||
"license": "MIT", | ||
"repository": { | ||
"type": "git", | ||
"url": "https://github.com/tbranyen/combyne.git" | ||
}, | ||
"main": "dist/combyne.js", | ||
"devDependencies": { | ||
"dateformat": "^1.0.11", | ||
"amdefine": "^1.0.0", | ||
"bower": "^1.5.2", | ||
"browserify": "^11.0.1", | ||
"browserify-derequire": "^0.9.4", | ||
"dateformat": "^1.0.11", | ||
"deamdify": "^0.1.1", | ||
"grunt": "^0.4.5", | ||
"grunt-browserify": "^4.0.0", | ||
"grunt-cli": "^0.1.13", | ||
"grunt-contrib-jshint": "^0.11.2", | ||
@@ -20,8 +28,11 @@ "grunt-jscs-checker": "^0.4.4", | ||
"jsdoc": "^3.3.2", | ||
"karma": "^0.13.9", | ||
"karma-coverage": "^0.5.0", | ||
"karma-mocha": "^0.2.0", | ||
"karma-phantomjs-launcher": "^0.2.1", | ||
"karma-sauce-launcher": "^0.2.14" | ||
"mocha": "^2.2.5", | ||
"phantomjs": "^1.9.18" | ||
}, | ||
"scripts": { | ||
"postinstall": "bower install", | ||
"test": "grunt test", | ||
@@ -28,0 +39,0 @@ "ci": "grunt test coveralls", |
@@ -1,10 +0,25 @@ | ||
<img align="left" src="http://dl.dropboxusercontent.com/u/79007/combyne.png"> | ||
<p align="center"> | ||
<img alt="Combyne" src="http://dl.dropboxusercontent.com/u/79007/combyne.png"> | ||
</p> | ||
**Stable: 0.8.1** | ||
<p align="center"> | ||
<a alt="Build status" href="http://travis-ci.org/tbranyen/combyne"> | ||
<img src="http://img.shields.io/travis/tbranyen/combyne.svg"> | ||
</a> | ||
[](https://travis-ci.org/tbranyen/combyne) | ||
[](https://coveralls.io/r/tbranyen/combyne?branch=master) | ||
[](https://codeclimate.com/github/tbranyen/combyne) | ||
<a alt="Code coverage" href="https://coveralls.io/r/tbranyen/combyne"> | ||
<img src="http://img.shields.io/coveralls/tbranyen/combyne.svg"> | ||
</a> | ||
<a alt="Code climate" href="https://codeclimate.com/github/tbranyen/combyne"> | ||
<img src="https://codeclimate.com/github/tbranyen/combyne.svg"> | ||
</a> | ||
<a alt="Gitter" href="https://gitter.im/tbranyen/combyne"> | ||
<img src="http://img.shields.io/badge/GITTER-join%20chat-green.svg"> | ||
</a> | ||
</p> | ||
**Stable: 0.9.0** | ||
No dependencies. Can be loaded as a browser global, AMD module, and Node | ||
@@ -19,6 +34,2 @@ module. Works with Browserify. Can be installed via NPM or Bower. | ||
**For when you're stuck and need help:** | ||
[](https://gitter.im/tbranyen/combyne?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge) | ||
## Install. ## | ||
@@ -107,4 +118,2 @@ | ||
[](https://saucelabs.com/u/combyne) | ||
## Basic usage. ## | ||
@@ -111,0 +120,0 @@ |
Sorry, the diff of this file is not supported yet
Install scripts
Supply chain riskInstall scripts are run when the package is installed. The majority of malware in npm is hidden in install scripts.
Found 1 instance in 1 package
No repository
Supply chain riskPackage does not have a linked source code repository. Without this field, a package will have no reference to the location of the source code use to generate the package.
Found 1 instance in 1 package
377827
4377
598
4
21
1