handlebars-source 1.1.2 → 1.2.0
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of handlebars-source might be problematic. Click here for more details.
- checksums.yaml +4 -4
- data/handlebars.js +166 -150
- data/handlebars.runtime.js +25 -25
- metadata +3 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 2103e671258424ac95c7d6bae42b5746b1571813
|
4
|
+
data.tar.gz: f23322d6a956dd6e1b09d1576cd1743754675b39
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5d09354a752423136ac9a8c717e229d8c1f0d16be4db56e7074ba710e489b4387715d78eb5ce227fdc3b265f31667ef2285ffc4e67b87eacffa777a47d53ac17
|
7
|
+
data.tar.gz: f31745697b2fc4123fac76cb7499415dedb85472d86f65fedf1d3bcb1bbd447791a5f8d6c03bf9e3362eec0d8032ae4bc7c0650611148a66197d3ee30c97b247
|
data/handlebars.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
2
|
|
3
|
-
handlebars v1.
|
3
|
+
handlebars v1.2.0
|
4
4
|
|
5
5
|
Copyright (C) 2011 by Yehuda Katz
|
6
6
|
|
@@ -24,6 +24,7 @@ THE SOFTWARE.
|
|
24
24
|
|
25
25
|
@license
|
26
26
|
*/
|
27
|
+
/* exported Handlebars */
|
27
28
|
var Handlebars = (function() {
|
28
29
|
// handlebars/safe-string.js
|
29
30
|
var __module4__ = (function() {
|
@@ -46,6 +47,7 @@ var __module4__ = (function() {
|
|
46
47
|
var __module3__ = (function(__dependency1__) {
|
47
48
|
"use strict";
|
48
49
|
var __exports__ = {};
|
50
|
+
/*jshint -W004 */
|
49
51
|
var SafeString = __dependency1__;
|
50
52
|
|
51
53
|
var escape = {
|
@@ -66,7 +68,7 @@ var __module3__ = (function(__dependency1__) {
|
|
66
68
|
|
67
69
|
function extend(obj, value) {
|
68
70
|
for(var key in value) {
|
69
|
-
if(
|
71
|
+
if(Object.prototype.hasOwnProperty.call(value, key)) {
|
70
72
|
obj[key] = value[key];
|
71
73
|
}
|
72
74
|
}
|
@@ -149,11 +151,10 @@ var __module5__ = (function() {
|
|
149
151
|
var __module2__ = (function(__dependency1__, __dependency2__) {
|
150
152
|
"use strict";
|
151
153
|
var __exports__ = {};
|
152
|
-
/*globals Exception, Utils */
|
153
154
|
var Utils = __dependency1__;
|
154
155
|
var Exception = __dependency2__;
|
155
156
|
|
156
|
-
var VERSION = "1.
|
157
|
+
var VERSION = "1.2.0";
|
157
158
|
__exports__.VERSION = VERSION;var COMPILER_REVISION = 4;
|
158
159
|
__exports__.COMPILER_REVISION = COMPILER_REVISION;
|
159
160
|
var REVISION_CHANGES = {
|
@@ -244,7 +245,7 @@ var __module2__ = (function(__dependency1__, __dependency2__) {
|
|
244
245
|
for(var j = context.length; i<j; i++) {
|
245
246
|
if (data) {
|
246
247
|
data.index = i;
|
247
|
-
data.first = (i === 0)
|
248
|
+
data.first = (i === 0);
|
248
249
|
data.last = (i === (context.length-1));
|
249
250
|
}
|
250
251
|
ret = ret + fn(context[i], { data: data });
|
@@ -252,7 +253,11 @@ var __module2__ = (function(__dependency1__, __dependency2__) {
|
|
252
253
|
} else {
|
253
254
|
for(var key in context) {
|
254
255
|
if(context.hasOwnProperty(key)) {
|
255
|
-
if(data) {
|
256
|
+
if(data) {
|
257
|
+
data.key = key;
|
258
|
+
data.index = i;
|
259
|
+
data.first = (i === 0);
|
260
|
+
}
|
256
261
|
ret = ret + fn(context[key], {data: data});
|
257
262
|
i++;
|
258
263
|
}
|
@@ -332,7 +337,6 @@ var __module2__ = (function(__dependency1__, __dependency2__) {
|
|
332
337
|
var __module6__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
333
338
|
"use strict";
|
334
339
|
var __exports__ = {};
|
335
|
-
/*global Utils */
|
336
340
|
var Utils = __dependency1__;
|
337
341
|
var Exception = __dependency2__;
|
338
342
|
var COMPILER_REVISION = __dependency3__.COMPILER_REVISION;
|
@@ -356,32 +360,27 @@ var __module6__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
|
356
360
|
}
|
357
361
|
}
|
358
362
|
|
359
|
-
|
363
|
+
__exports__.checkRevision = checkRevision;// TODO: Remove this line and break up compilePartial
|
360
364
|
|
361
365
|
function template(templateSpec, env) {
|
362
366
|
if (!env) {
|
363
367
|
throw new Error("No environment passed to template");
|
364
368
|
}
|
365
369
|
|
366
|
-
var
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
var result = invokePartial.apply(this, arguments);
|
372
|
-
if (result) { return result; }
|
370
|
+
// Note: Using env.VM references rather than local var references throughout this section to allow
|
371
|
+
// for external users to override these as psuedo-supported APIs.
|
372
|
+
var invokePartialWrapper = function(partial, name, context, helpers, partials, data) {
|
373
|
+
var result = env.VM.invokePartial.apply(this, arguments);
|
374
|
+
if (result != null) { return result; }
|
373
375
|
|
376
|
+
if (env.compile) {
|
374
377
|
var options = { helpers: helpers, partials: partials, data: data };
|
375
378
|
partials[name] = env.compile(partial, { data: data !== undefined }, env);
|
376
379
|
return partials[name](context, options);
|
377
|
-
}
|
378
|
-
} else {
|
379
|
-
invokePartialWrapper = function(partial, name /* , context, helpers, partials, data */) {
|
380
|
-
var result = invokePartial.apply(this, arguments);
|
381
|
-
if (result) { return result; }
|
380
|
+
} else {
|
382
381
|
throw new Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
|
383
|
-
}
|
384
|
-
}
|
382
|
+
}
|
383
|
+
};
|
385
384
|
|
386
385
|
// Just add water
|
387
386
|
var container = {
|
@@ -407,8 +406,8 @@ var __module6__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
|
407
406
|
}
|
408
407
|
return ret;
|
409
408
|
},
|
410
|
-
programWithDepth: programWithDepth,
|
411
|
-
noop: noop,
|
409
|
+
programWithDepth: env.VM.programWithDepth,
|
410
|
+
noop: env.VM.noop,
|
412
411
|
compilerInfo: null
|
413
412
|
};
|
414
413
|
|
@@ -430,7 +429,7 @@ var __module6__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
|
430
429
|
options.data);
|
431
430
|
|
432
431
|
if (!options.partial) {
|
433
|
-
checkRevision(container.compilerInfo);
|
432
|
+
env.VM.checkRevision(container.compilerInfo);
|
434
433
|
}
|
435
434
|
|
436
435
|
return result;
|
@@ -481,6 +480,7 @@ var __module6__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
|
481
480
|
var __module1__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {
|
482
481
|
"use strict";
|
483
482
|
var __exports__;
|
483
|
+
/*globals Handlebars: true */
|
484
484
|
var base = __dependency1__;
|
485
485
|
|
486
486
|
// Each of these augment the Handlebars object. No need to setup here.
|
@@ -517,154 +517,164 @@ var __module1__ = (function(__dependency1__, __dependency2__, __dependency3__, _
|
|
517
517
|
// handlebars/compiler/ast.js
|
518
518
|
var __module7__ = (function(__dependency1__) {
|
519
519
|
"use strict";
|
520
|
-
var __exports__
|
520
|
+
var __exports__;
|
521
521
|
var Exception = __dependency1__;
|
522
522
|
|
523
|
-
|
524
|
-
|
525
|
-
|
526
|
-
|
523
|
+
var AST = {
|
524
|
+
ProgramNode: function(statements, inverseStrip, inverse) {
|
525
|
+
this.type = "program";
|
526
|
+
this.statements = statements;
|
527
|
+
this.strip = {};
|
527
528
|
|
528
|
-
|
529
|
-
|
530
|
-
|
531
|
-
|
532
|
-
|
533
|
-
|
534
|
-
|
529
|
+
if(inverse) {
|
530
|
+
this.inverse = new AST.ProgramNode(inverse, inverseStrip);
|
531
|
+
this.strip.right = inverseStrip.left;
|
532
|
+
} else if (inverseStrip) {
|
533
|
+
this.strip.left = inverseStrip.right;
|
534
|
+
}
|
535
|
+
},
|
535
536
|
|
536
|
-
|
537
|
-
|
538
|
-
|
539
|
-
|
537
|
+
MustacheNode: function(rawParams, hash, open, strip) {
|
538
|
+
this.type = "mustache";
|
539
|
+
this.hash = hash;
|
540
|
+
this.strip = strip;
|
540
541
|
|
541
|
-
|
542
|
-
|
542
|
+
// Open may be a string parsed from the parser or a passed boolean flag
|
543
|
+
if (open != null && open.charAt) {
|
544
|
+
// Must use charAt to support IE pre-10
|
545
|
+
var escapeFlag = open.charAt(3) || open.charAt(2);
|
546
|
+
this.escaped = escapeFlag !== '{' && escapeFlag !== '&';
|
547
|
+
} else {
|
548
|
+
this.escaped = !!open;
|
549
|
+
}
|
543
550
|
|
544
|
-
|
545
|
-
|
551
|
+
var id = this.id = rawParams[0];
|
552
|
+
var params = this.params = rawParams.slice(1);
|
546
553
|
|
547
|
-
|
548
|
-
|
549
|
-
|
554
|
+
// a mustache is an eligible helper if:
|
555
|
+
// * its id is simple (a single part, not `this` or `..`)
|
556
|
+
var eligibleHelper = this.eligibleHelper = id.isSimple;
|
550
557
|
|
551
|
-
|
552
|
-
|
553
|
-
|
554
|
-
|
558
|
+
// a mustache is definitely a helper if:
|
559
|
+
// * it is an eligible helper, and
|
560
|
+
// * it has at least one parameter or hash segment
|
561
|
+
this.isHelper = eligibleHelper && (params.length || hash);
|
555
562
|
|
556
|
-
|
557
|
-
|
558
|
-
|
559
|
-
|
563
|
+
// if a mustache is an eligible helper but not a definite
|
564
|
+
// helper, it is ambiguous, and will be resolved in a later
|
565
|
+
// pass or at runtime.
|
566
|
+
},
|
560
567
|
|
561
|
-
|
562
|
-
|
563
|
-
|
564
|
-
|
565
|
-
|
566
|
-
|
568
|
+
PartialNode: function(partialName, context, strip) {
|
569
|
+
this.type = "partial";
|
570
|
+
this.partialName = partialName;
|
571
|
+
this.context = context;
|
572
|
+
this.strip = strip;
|
573
|
+
},
|
567
574
|
|
568
|
-
|
569
|
-
|
570
|
-
|
571
|
-
|
575
|
+
BlockNode: function(mustache, program, inverse, close) {
|
576
|
+
if(mustache.id.original !== close.path.original) {
|
577
|
+
throw new Exception(mustache.id.original + " doesn't match " + close.path.original);
|
578
|
+
}
|
572
579
|
|
573
|
-
|
574
|
-
|
575
|
-
|
576
|
-
|
580
|
+
this.type = "block";
|
581
|
+
this.mustache = mustache;
|
582
|
+
this.program = program;
|
583
|
+
this.inverse = inverse;
|
577
584
|
|
578
|
-
|
579
|
-
|
580
|
-
|
581
|
-
|
585
|
+
this.strip = {
|
586
|
+
left: mustache.strip.left,
|
587
|
+
right: close.strip.right
|
588
|
+
};
|
582
589
|
|
583
|
-
|
584
|
-
|
590
|
+
(program || inverse).strip.left = mustache.strip.right;
|
591
|
+
(inverse || program).strip.right = close.strip.left;
|
585
592
|
|
586
|
-
|
587
|
-
|
588
|
-
|
589
|
-
|
593
|
+
if (inverse && !program) {
|
594
|
+
this.isInverse = true;
|
595
|
+
}
|
596
|
+
},
|
590
597
|
|
591
|
-
|
592
|
-
|
593
|
-
|
594
|
-
|
598
|
+
ContentNode: function(string) {
|
599
|
+
this.type = "content";
|
600
|
+
this.string = string;
|
601
|
+
},
|
595
602
|
|
596
|
-
|
597
|
-
|
598
|
-
|
599
|
-
|
603
|
+
HashNode: function(pairs) {
|
604
|
+
this.type = "hash";
|
605
|
+
this.pairs = pairs;
|
606
|
+
},
|
600
607
|
|
601
|
-
|
602
|
-
|
608
|
+
IdNode: function(parts) {
|
609
|
+
this.type = "ID";
|
603
610
|
|
604
|
-
|
605
|
-
|
606
|
-
|
611
|
+
var original = "",
|
612
|
+
dig = [],
|
613
|
+
depth = 0;
|
607
614
|
|
608
|
-
|
609
|
-
|
610
|
-
|
615
|
+
for(var i=0,l=parts.length; i<l; i++) {
|
616
|
+
var part = parts[i].part;
|
617
|
+
original += (parts[i].separator || '') + part;
|
611
618
|
|
612
|
-
|
613
|
-
|
614
|
-
|
615
|
-
|
619
|
+
if (part === ".." || part === "." || part === "this") {
|
620
|
+
if (dig.length > 0) { throw new Exception("Invalid path: " + original); }
|
621
|
+
else if (part === "..") { depth++; }
|
622
|
+
else { this.isScoped = true; }
|
623
|
+
}
|
624
|
+
else { dig.push(part); }
|
616
625
|
}
|
617
|
-
else { dig.push(part); }
|
618
|
-
}
|
619
626
|
|
620
|
-
|
621
|
-
|
622
|
-
|
623
|
-
|
627
|
+
this.original = original;
|
628
|
+
this.parts = dig;
|
629
|
+
this.string = dig.join('.');
|
630
|
+
this.depth = depth;
|
624
631
|
|
625
|
-
|
626
|
-
|
627
|
-
|
632
|
+
// an ID is simple if it only has one part, and that part is not
|
633
|
+
// `..` or `this`.
|
634
|
+
this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;
|
628
635
|
|
629
|
-
|
630
|
-
|
636
|
+
this.stringModeValue = this.string;
|
637
|
+
},
|
631
638
|
|
632
|
-
|
633
|
-
|
634
|
-
|
635
|
-
|
639
|
+
PartialNameNode: function(name) {
|
640
|
+
this.type = "PARTIAL_NAME";
|
641
|
+
this.name = name.original;
|
642
|
+
},
|
636
643
|
|
637
|
-
|
638
|
-
|
639
|
-
|
640
|
-
|
644
|
+
DataNode: function(id) {
|
645
|
+
this.type = "DATA";
|
646
|
+
this.id = id;
|
647
|
+
},
|
641
648
|
|
642
|
-
|
643
|
-
|
644
|
-
|
645
|
-
|
646
|
-
|
647
|
-
|
649
|
+
StringNode: function(string) {
|
650
|
+
this.type = "STRING";
|
651
|
+
this.original =
|
652
|
+
this.string =
|
653
|
+
this.stringModeValue = string;
|
654
|
+
},
|
648
655
|
|
649
|
-
|
650
|
-
|
651
|
-
|
652
|
-
|
653
|
-
|
654
|
-
|
656
|
+
IntegerNode: function(integer) {
|
657
|
+
this.type = "INTEGER";
|
658
|
+
this.original =
|
659
|
+
this.integer = integer;
|
660
|
+
this.stringModeValue = Number(integer);
|
661
|
+
},
|
655
662
|
|
656
|
-
|
657
|
-
|
658
|
-
|
659
|
-
|
660
|
-
|
663
|
+
BooleanNode: function(bool) {
|
664
|
+
this.type = "BOOLEAN";
|
665
|
+
this.bool = bool;
|
666
|
+
this.stringModeValue = bool === "true";
|
667
|
+
},
|
661
668
|
|
662
|
-
|
663
|
-
|
664
|
-
|
665
|
-
|
669
|
+
CommentNode: function(comment) {
|
670
|
+
this.type = "comment";
|
671
|
+
this.comment = comment;
|
672
|
+
}
|
673
|
+
};
|
666
674
|
|
667
|
-
|
675
|
+
// Must be exported as an object rather than the root of the module as the jison lexer
|
676
|
+
// most modify the object to operate properly.
|
677
|
+
__exports__ = AST;
|
668
678
|
return __exports__;
|
669
679
|
})(__module5__);
|
670
680
|
|
@@ -672,6 +682,7 @@ var __module7__ = (function(__dependency1__) {
|
|
672
682
|
var __module9__ = (function() {
|
673
683
|
"use strict";
|
674
684
|
var __exports__;
|
685
|
+
/* jshint ignore:start */
|
675
686
|
/* Jison generated parser */
|
676
687
|
var handlebars = (function(){
|
677
688
|
var parser = {trace: function trace() { },
|
@@ -884,8 +895,8 @@ var __module9__ = (function() {
|
|
884
895
|
|
885
896
|
function stripFlags(open, close) {
|
886
897
|
return {
|
887
|
-
left: open
|
888
|
-
right: close
|
898
|
+
left: open.charAt(2) === '~',
|
899
|
+
right: close.charAt(0) === '~' || close.charAt(1) === '~'
|
889
900
|
};
|
890
901
|
}
|
891
902
|
|
@@ -1084,8 +1095,7 @@ var __module9__ = (function() {
|
|
1084
1095
|
case 1:return 14;
|
1085
1096
|
break;
|
1086
1097
|
case 2:
|
1087
|
-
|
1088
|
-
if(yy_.yytext.slice(-1) === "\\") strip(0,1);
|
1098
|
+
this.popState();
|
1089
1099
|
return 14;
|
1090
1100
|
|
1091
1101
|
break;
|
@@ -1119,7 +1129,7 @@ var __module9__ = (function() {
|
|
1119
1129
|
break;
|
1120
1130
|
case 17:return 42;
|
1121
1131
|
break;
|
1122
|
-
case 18
|
1132
|
+
case 18:// ignore whitespace
|
1123
1133
|
break;
|
1124
1134
|
case 19:this.popState(); return 24;
|
1125
1135
|
break;
|
@@ -1147,13 +1157,14 @@ var __module9__ = (function() {
|
|
1147
1157
|
break;
|
1148
1158
|
}
|
1149
1159
|
};
|
1150
|
-
lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|$)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s])))/,/^(?:false(?=([~}\s])))/,/^(?:-?[0-9]+(?=([~}\s])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];
|
1160
|
+
lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|\\\{\{|\\\\\{\{|$)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\{\{(~)?>)/,/^(?:\{\{(~)?#)/,/^(?:\{\{(~)?\/)/,/^(?:\{\{(~)?\^)/,/^(?:\{\{(~)?\s*else\b)/,/^(?:\{\{(~)?\{)/,/^(?:\{\{(~)?&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{(~)?)/,/^(?:=)/,/^(?:\.\.)/,/^(?:\.(?=([=~}\s\/.])))/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}(~)?\}\})/,/^(?:(~)?\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@)/,/^(?:true(?=([~}\s])))/,/^(?:false(?=([~}\s])))/,/^(?:-?[0-9]+(?=([~}\s])))/,/^(?:([^\s!"#%-,\.\/;->@\[-\^`\{-~]+(?=([=~}\s\/.]))))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];
|
1151
1161
|
lexer.conditions = {"mu":{"rules":[4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[3],"inclusive":false},"INITIAL":{"rules":[0,1,30],"inclusive":true}};
|
1152
1162
|
return lexer;})()
|
1153
1163
|
parser.lexer = lexer;
|
1154
1164
|
function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
|
1155
1165
|
return new Parser;
|
1156
1166
|
})();__exports__ = handlebars;
|
1167
|
+
/* jshint ignore:end */
|
1157
1168
|
return __exports__;
|
1158
1169
|
})();
|
1159
1170
|
|
@@ -1218,6 +1229,12 @@ var __module11__ = (function(__dependency1__) {
|
|
1218
1229
|
}
|
1219
1230
|
},
|
1220
1231
|
|
1232
|
+
compilerInfo: function() {
|
1233
|
+
var revision = COMPILER_REVISION,
|
1234
|
+
versions = REVISION_CHANGES[revision];
|
1235
|
+
return "this.compilerInfo = ["+revision+",'"+versions+"'];\n";
|
1236
|
+
},
|
1237
|
+
|
1221
1238
|
appendToBuffer: function(string) {
|
1222
1239
|
if (this.environment.isSimple) {
|
1223
1240
|
return "return " + string + ";";
|
@@ -1351,9 +1368,7 @@ var __module11__ = (function(__dependency1__) {
|
|
1351
1368
|
var source = this.mergeSource();
|
1352
1369
|
|
1353
1370
|
if (!this.isChild) {
|
1354
|
-
|
1355
|
-
versions = REVISION_CHANGES[revision];
|
1356
|
-
source = "this.compilerInfo = ["+revision+",'"+versions+"'];\n"+source;
|
1371
|
+
source = this.compilerInfo()+source;
|
1357
1372
|
}
|
1358
1373
|
|
1359
1374
|
if (asObject) {
|
@@ -2555,6 +2570,7 @@ var __module10__ = (function(__dependency1__, __dependency2__, __dependency3__,
|
|
2555
2570
|
var __module0__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {
|
2556
2571
|
"use strict";
|
2557
2572
|
var __exports__;
|
2573
|
+
/*globals Handlebars: true */
|
2558
2574
|
var Handlebars = __dependency1__;
|
2559
2575
|
|
2560
2576
|
// Compiler imports
|
data/handlebars.runtime.js
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
/*!
|
2
2
|
|
3
|
-
handlebars v1.
|
3
|
+
handlebars v1.2.0
|
4
4
|
|
5
5
|
Copyright (C) 2011 by Yehuda Katz
|
6
6
|
|
@@ -24,6 +24,7 @@ THE SOFTWARE.
|
|
24
24
|
|
25
25
|
@license
|
26
26
|
*/
|
27
|
+
/* exported Handlebars */
|
27
28
|
var Handlebars = (function() {
|
28
29
|
// handlebars/safe-string.js
|
29
30
|
var __module3__ = (function() {
|
@@ -46,6 +47,7 @@ var __module3__ = (function() {
|
|
46
47
|
var __module2__ = (function(__dependency1__) {
|
47
48
|
"use strict";
|
48
49
|
var __exports__ = {};
|
50
|
+
/*jshint -W004 */
|
49
51
|
var SafeString = __dependency1__;
|
50
52
|
|
51
53
|
var escape = {
|
@@ -66,7 +68,7 @@ var __module2__ = (function(__dependency1__) {
|
|
66
68
|
|
67
69
|
function extend(obj, value) {
|
68
70
|
for(var key in value) {
|
69
|
-
if(
|
71
|
+
if(Object.prototype.hasOwnProperty.call(value, key)) {
|
70
72
|
obj[key] = value[key];
|
71
73
|
}
|
72
74
|
}
|
@@ -149,11 +151,10 @@ var __module4__ = (function() {
|
|
149
151
|
var __module1__ = (function(__dependency1__, __dependency2__) {
|
150
152
|
"use strict";
|
151
153
|
var __exports__ = {};
|
152
|
-
/*globals Exception, Utils */
|
153
154
|
var Utils = __dependency1__;
|
154
155
|
var Exception = __dependency2__;
|
155
156
|
|
156
|
-
var VERSION = "1.
|
157
|
+
var VERSION = "1.2.0";
|
157
158
|
__exports__.VERSION = VERSION;var COMPILER_REVISION = 4;
|
158
159
|
__exports__.COMPILER_REVISION = COMPILER_REVISION;
|
159
160
|
var REVISION_CHANGES = {
|
@@ -244,7 +245,7 @@ var __module1__ = (function(__dependency1__, __dependency2__) {
|
|
244
245
|
for(var j = context.length; i<j; i++) {
|
245
246
|
if (data) {
|
246
247
|
data.index = i;
|
247
|
-
data.first = (i === 0)
|
248
|
+
data.first = (i === 0);
|
248
249
|
data.last = (i === (context.length-1));
|
249
250
|
}
|
250
251
|
ret = ret + fn(context[i], { data: data });
|
@@ -252,7 +253,11 @@ var __module1__ = (function(__dependency1__, __dependency2__) {
|
|
252
253
|
} else {
|
253
254
|
for(var key in context) {
|
254
255
|
if(context.hasOwnProperty(key)) {
|
255
|
-
if(data) {
|
256
|
+
if(data) {
|
257
|
+
data.key = key;
|
258
|
+
data.index = i;
|
259
|
+
data.first = (i === 0);
|
260
|
+
}
|
256
261
|
ret = ret + fn(context[key], {data: data});
|
257
262
|
i++;
|
258
263
|
}
|
@@ -332,7 +337,6 @@ var __module1__ = (function(__dependency1__, __dependency2__) {
|
|
332
337
|
var __module5__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
333
338
|
"use strict";
|
334
339
|
var __exports__ = {};
|
335
|
-
/*global Utils */
|
336
340
|
var Utils = __dependency1__;
|
337
341
|
var Exception = __dependency2__;
|
338
342
|
var COMPILER_REVISION = __dependency3__.COMPILER_REVISION;
|
@@ -356,32 +360,27 @@ var __module5__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
|
356
360
|
}
|
357
361
|
}
|
358
362
|
|
359
|
-
|
363
|
+
__exports__.checkRevision = checkRevision;// TODO: Remove this line and break up compilePartial
|
360
364
|
|
361
365
|
function template(templateSpec, env) {
|
362
366
|
if (!env) {
|
363
367
|
throw new Error("No environment passed to template");
|
364
368
|
}
|
365
369
|
|
366
|
-
var
|
367
|
-
|
368
|
-
|
369
|
-
|
370
|
-
|
371
|
-
var result = invokePartial.apply(this, arguments);
|
372
|
-
if (result) { return result; }
|
370
|
+
// Note: Using env.VM references rather than local var references throughout this section to allow
|
371
|
+
// for external users to override these as psuedo-supported APIs.
|
372
|
+
var invokePartialWrapper = function(partial, name, context, helpers, partials, data) {
|
373
|
+
var result = env.VM.invokePartial.apply(this, arguments);
|
374
|
+
if (result != null) { return result; }
|
373
375
|
|
376
|
+
if (env.compile) {
|
374
377
|
var options = { helpers: helpers, partials: partials, data: data };
|
375
378
|
partials[name] = env.compile(partial, { data: data !== undefined }, env);
|
376
379
|
return partials[name](context, options);
|
377
|
-
}
|
378
|
-
} else {
|
379
|
-
invokePartialWrapper = function(partial, name /* , context, helpers, partials, data */) {
|
380
|
-
var result = invokePartial.apply(this, arguments);
|
381
|
-
if (result) { return result; }
|
380
|
+
} else {
|
382
381
|
throw new Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
|
383
|
-
}
|
384
|
-
}
|
382
|
+
}
|
383
|
+
};
|
385
384
|
|
386
385
|
// Just add water
|
387
386
|
var container = {
|
@@ -407,8 +406,8 @@ var __module5__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
|
407
406
|
}
|
408
407
|
return ret;
|
409
408
|
},
|
410
|
-
programWithDepth: programWithDepth,
|
411
|
-
noop: noop,
|
409
|
+
programWithDepth: env.VM.programWithDepth,
|
410
|
+
noop: env.VM.noop,
|
412
411
|
compilerInfo: null
|
413
412
|
};
|
414
413
|
|
@@ -430,7 +429,7 @@ var __module5__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
|
430
429
|
options.data);
|
431
430
|
|
432
431
|
if (!options.partial) {
|
433
|
-
checkRevision(container.compilerInfo);
|
432
|
+
env.VM.checkRevision(container.compilerInfo);
|
434
433
|
}
|
435
434
|
|
436
435
|
return result;
|
@@ -481,6 +480,7 @@ var __module5__ = (function(__dependency1__, __dependency2__, __dependency3__) {
|
|
481
480
|
var __module0__ = (function(__dependency1__, __dependency2__, __dependency3__, __dependency4__, __dependency5__) {
|
482
481
|
"use strict";
|
483
482
|
var __exports__;
|
483
|
+
/*globals Handlebars: true */
|
484
484
|
var base = __dependency1__;
|
485
485
|
|
486
486
|
// Each of these augment the Handlebars object. No need to setup here.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: handlebars-source
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Yehuda Katz
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-
|
11
|
+
date: 2013-12-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: Handlebars.js source code wrapper for (pre)compilation gems.
|
14
14
|
email:
|
@@ -39,9 +39,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
39
39
|
version: '0'
|
40
40
|
requirements: []
|
41
41
|
rubyforge_project:
|
42
|
-
rubygems_version: 2.0.
|
42
|
+
rubygems_version: 2.0.3
|
43
43
|
signing_key:
|
44
44
|
specification_version: 4
|
45
45
|
summary: Handlebars.js source code wrapper
|
46
46
|
test_files: []
|
47
|
-
has_rdoc:
|