handlebars_assets 0.8.1 → 0.8.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/CHANGELOG.md +5 -0
- data/Gemfile.lock +1 -1
- data/README.md +1 -1
- data/lib/handlebars_assets/tilt_handlebars.rb +1 -1
- data/lib/handlebars_assets/version.rb +1 -1
- data/vendor/assets/javascripts/handlebars.js +139 -121
- data/vendor/assets/javascripts/handlebars.runtime.js +22 -7
- metadata +2 -2
data/CHANGELOG.md
CHANGED
@@ -1,5 +1,10 @@
|
|
1
1
|
## On master
|
2
2
|
|
3
|
+
## 0.8.2
|
4
|
+
|
5
|
+
* Update to [this commit](https://github.com/wycats/handlebars.js/commit/5e5f0dce9c352f490f1f1e58fd7d0f76dd006cac) of `handlebars.js`
|
6
|
+
* Fix to allow Ember.js template support when not using Rails
|
7
|
+
|
3
8
|
## 0.8.1
|
4
9
|
|
5
10
|
* Require haml directly
|
data/Gemfile.lock
CHANGED
data/README.md
CHANGED
@@ -10,7 +10,7 @@ Using `sprockets` with Sinatra or another framework? **handlebars_assets** works
|
|
10
10
|
|
11
11
|
**Please read**
|
12
12
|
|
13
|
-
Because of a serious regression introduced in RC1, `handlebars_assets` is packaged with an edge build of `handlebars.js` (this [commit](https://github.com/wycats/handlebars.js/commit/
|
13
|
+
Because of a serious regression introduced in RC1, `handlebars_assets` is packaged with an edge build of `handlebars.js` (this [commit](https://github.com/wycats/handlebars.js/commit/5e5f0dce9c352f490f1f1e58fd7d0f76dd006cac). See the section on using another version if that does not work for you.
|
14
14
|
|
15
15
|
## Installation with Rails 3.1+
|
16
16
|
|
@@ -29,7 +29,7 @@ module HandlebarsAssets
|
|
29
29
|
end
|
30
30
|
|
31
31
|
if HandlebarsAssets::Config.ember?
|
32
|
-
"window.Ember.TEMPLATES[#{template_path.name}] = Ember.Handlebars.compile(#{source
|
32
|
+
"window.Ember.TEMPLATES[#{template_path.name}] = Ember.Handlebars.compile(#{MultiJson.dump source});"
|
33
33
|
else
|
34
34
|
compiled_hbs = Handlebars.precompile(source, HandlebarsAssets::Config.options)
|
35
35
|
|
@@ -62,6 +62,24 @@ Handlebars.createFrame = Object.create || function(object) {
|
|
62
62
|
return obj;
|
63
63
|
};
|
64
64
|
|
65
|
+
Handlebars.logger = {
|
66
|
+
DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
|
67
|
+
|
68
|
+
methodMap: {0: 'debug', 1: 'info', 2: 'warn', 3: 'error'},
|
69
|
+
|
70
|
+
// can be overridden in the host environment
|
71
|
+
log: function(level, obj) {
|
72
|
+
if (Handlebars.logger.level <= level) {
|
73
|
+
var method = Handlebars.logger.methodMap[level];
|
74
|
+
if (typeof console !== 'undefined' && console[method]) {
|
75
|
+
console[method].call(console, obj);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
};
|
80
|
+
|
81
|
+
Handlebars.log = function(level, obj) { Handlebars.logger.log(level, obj); };
|
82
|
+
|
65
83
|
Handlebars.registerHelper('each', function(context, options) {
|
66
84
|
var fn = options.fn, inverse = options.inverse;
|
67
85
|
var i = 0, ret = "", data;
|
@@ -117,8 +135,9 @@ Handlebars.registerHelper('with', function(context, options) {
|
|
117
135
|
return options.fn(context);
|
118
136
|
});
|
119
137
|
|
120
|
-
Handlebars.registerHelper('log', function(context) {
|
121
|
-
|
138
|
+
Handlebars.registerHelper('log', function(context, options) {
|
139
|
+
var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
|
140
|
+
Handlebars.log(level, context);
|
122
141
|
});
|
123
142
|
|
124
143
|
}(this.Handlebars));
|
@@ -128,103 +147,111 @@ Handlebars.registerHelper('log', function(context) {
|
|
128
147
|
var handlebars = (function(){
|
129
148
|
var parser = {trace: function trace() { },
|
130
149
|
yy: {},
|
131
|
-
symbols_: {"error":2,"root":3,"program":4,"EOF":5,"
|
132
|
-
terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"OPEN_PARTIAL",
|
133
|
-
productions_: [0,[3,2],[4,3],[4,1],[4,0],[
|
150
|
+
symbols_: {"error":2,"root":3,"program":4,"EOF":5,"simpleInverse":6,"statements":7,"statement":8,"openInverse":9,"closeBlock":10,"openBlock":11,"mustache":12,"partial":13,"CONTENT":14,"COMMENT":15,"OPEN_BLOCK":16,"inMustache":17,"CLOSE":18,"OPEN_INVERSE":19,"OPEN_ENDBLOCK":20,"path":21,"OPEN":22,"OPEN_UNESCAPED":23,"OPEN_PARTIAL":24,"partialName":25,"params":26,"hash":27,"DATA":28,"param":29,"STRING":30,"INTEGER":31,"BOOLEAN":32,"hashSegments":33,"hashSegment":34,"ID":35,"EQUALS":36,"PARTIAL_NAME":37,"pathSegments":38,"SEP":39,"$accept":0,"$end":1},
|
151
|
+
terminals_: {2:"error",5:"EOF",14:"CONTENT",15:"COMMENT",16:"OPEN_BLOCK",18:"CLOSE",19:"OPEN_INVERSE",20:"OPEN_ENDBLOCK",22:"OPEN",23:"OPEN_UNESCAPED",24:"OPEN_PARTIAL",28:"DATA",30:"STRING",31:"INTEGER",32:"BOOLEAN",35:"ID",36:"EQUALS",37:"PARTIAL_NAME",39:"SEP"},
|
152
|
+
productions_: [0,[3,2],[4,2],[4,3],[4,2],[4,1],[4,1],[4,0],[7,1],[7,2],[8,3],[8,3],[8,1],[8,1],[8,1],[8,1],[11,3],[9,3],[10,3],[12,3],[12,3],[13,3],[13,4],[6,2],[17,3],[17,2],[17,2],[17,1],[17,1],[26,2],[26,1],[29,1],[29,1],[29,1],[29,1],[29,1],[27,1],[33,2],[33,1],[34,3],[34,3],[34,3],[34,3],[34,3],[25,1],[21,1],[38,3],[38,1]],
|
134
153
|
performAction: function anonymous(yytext,yyleng,yylineno,yy,yystate,$$,_$) {
|
135
154
|
|
136
155
|
var $0 = $$.length - 1;
|
137
156
|
switch (yystate) {
|
138
157
|
case 1: return $$[$0-1];
|
139
158
|
break;
|
140
|
-
case 2: this.$ = new yy.ProgramNode(
|
159
|
+
case 2: this.$ = new yy.ProgramNode([], $$[$0]);
|
141
160
|
break;
|
142
|
-
case 3: this.$ = new yy.ProgramNode($$[$0]);
|
161
|
+
case 3: this.$ = new yy.ProgramNode($$[$0-2], $$[$0]);
|
143
162
|
break;
|
144
|
-
case 4: this.$ = new yy.ProgramNode([]);
|
163
|
+
case 4: this.$ = new yy.ProgramNode($$[$0-1], []);
|
145
164
|
break;
|
146
|
-
case 5: this.$ =
|
165
|
+
case 5: this.$ = new yy.ProgramNode($$[$0]);
|
147
166
|
break;
|
148
|
-
case 6:
|
167
|
+
case 6: this.$ = new yy.ProgramNode([], []);
|
149
168
|
break;
|
150
|
-
case 7: this.$ = new yy.
|
169
|
+
case 7: this.$ = new yy.ProgramNode([]);
|
151
170
|
break;
|
152
|
-
case 8: this.$ =
|
171
|
+
case 8: this.$ = [$$[$0]];
|
153
172
|
break;
|
154
|
-
case 9: this.$ = $$[$0];
|
173
|
+
case 9: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
|
155
174
|
break;
|
156
|
-
case 10: this.$ = $$[$0];
|
175
|
+
case 10: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1].inverse, $$[$0-1], $$[$0]);
|
157
176
|
break;
|
158
|
-
case 11: this.$ = new yy.
|
177
|
+
case 11: this.$ = new yy.BlockNode($$[$0-2], $$[$0-1], $$[$0-1].inverse, $$[$0]);
|
159
178
|
break;
|
160
|
-
case 12: this.$ =
|
179
|
+
case 12: this.$ = $$[$0];
|
161
180
|
break;
|
162
|
-
case 13: this.$ =
|
181
|
+
case 13: this.$ = $$[$0];
|
163
182
|
break;
|
164
|
-
case 14: this.$ = new yy.
|
183
|
+
case 14: this.$ = new yy.ContentNode($$[$0]);
|
165
184
|
break;
|
166
|
-
case 15: this.$ = $$[$0
|
185
|
+
case 15: this.$ = new yy.CommentNode($$[$0]);
|
167
186
|
break;
|
168
187
|
case 16: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
|
169
188
|
break;
|
170
|
-
case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]
|
189
|
+
case 17: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
|
190
|
+
break;
|
191
|
+
case 18: this.$ = $$[$0-1];
|
192
|
+
break;
|
193
|
+
case 19: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1]);
|
194
|
+
break;
|
195
|
+
case 20: this.$ = new yy.MustacheNode($$[$0-1][0], $$[$0-1][1], true);
|
171
196
|
break;
|
172
|
-
case
|
197
|
+
case 21: this.$ = new yy.PartialNode($$[$0-1]);
|
173
198
|
break;
|
174
|
-
case
|
199
|
+
case 22: this.$ = new yy.PartialNode($$[$0-2], $$[$0-1]);
|
175
200
|
break;
|
176
|
-
case
|
201
|
+
case 23:
|
177
202
|
break;
|
178
|
-
case
|
203
|
+
case 24: this.$ = [[$$[$0-2]].concat($$[$0-1]), $$[$0]];
|
179
204
|
break;
|
180
|
-
case
|
205
|
+
case 25: this.$ = [[$$[$0-1]].concat($$[$0]), null];
|
181
206
|
break;
|
182
|
-
case
|
207
|
+
case 26: this.$ = [[$$[$0-1]], $$[$0]];
|
183
208
|
break;
|
184
|
-
case
|
209
|
+
case 27: this.$ = [[$$[$0]], null];
|
185
210
|
break;
|
186
|
-
case
|
211
|
+
case 28: this.$ = [[new yy.DataNode($$[$0])], null];
|
187
212
|
break;
|
188
|
-
case
|
213
|
+
case 29: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
|
189
214
|
break;
|
190
|
-
case
|
215
|
+
case 30: this.$ = [$$[$0]];
|
191
216
|
break;
|
192
|
-
case
|
217
|
+
case 31: this.$ = $$[$0];
|
193
218
|
break;
|
194
|
-
case
|
219
|
+
case 32: this.$ = new yy.StringNode($$[$0]);
|
195
220
|
break;
|
196
|
-
case
|
221
|
+
case 33: this.$ = new yy.IntegerNode($$[$0]);
|
197
222
|
break;
|
198
|
-
case
|
223
|
+
case 34: this.$ = new yy.BooleanNode($$[$0]);
|
199
224
|
break;
|
200
|
-
case
|
225
|
+
case 35: this.$ = new yy.DataNode($$[$0]);
|
201
226
|
break;
|
202
|
-
case
|
227
|
+
case 36: this.$ = new yy.HashNode($$[$0]);
|
203
228
|
break;
|
204
|
-
case
|
229
|
+
case 37: $$[$0-1].push($$[$0]); this.$ = $$[$0-1];
|
205
230
|
break;
|
206
|
-
case
|
231
|
+
case 38: this.$ = [$$[$0]];
|
207
232
|
break;
|
208
|
-
case
|
233
|
+
case 39: this.$ = [$$[$0-2], $$[$0]];
|
209
234
|
break;
|
210
|
-
case
|
235
|
+
case 40: this.$ = [$$[$0-2], new yy.StringNode($$[$0])];
|
211
236
|
break;
|
212
|
-
case
|
237
|
+
case 41: this.$ = [$$[$0-2], new yy.IntegerNode($$[$0])];
|
213
238
|
break;
|
214
|
-
case
|
239
|
+
case 42: this.$ = [$$[$0-2], new yy.BooleanNode($$[$0])];
|
215
240
|
break;
|
216
|
-
case
|
241
|
+
case 43: this.$ = [$$[$0-2], new yy.DataNode($$[$0])];
|
217
242
|
break;
|
218
|
-
case
|
243
|
+
case 44: this.$ = new yy.PartialNameNode($$[$0]);
|
219
244
|
break;
|
220
|
-
case
|
245
|
+
case 45: this.$ = new yy.IdNode($$[$0]);
|
221
246
|
break;
|
222
|
-
case
|
247
|
+
case 46: $$[$0-2].push($$[$0]); this.$ = $$[$0-2];
|
248
|
+
break;
|
249
|
+
case 47: this.$ = [$$[$0]];
|
223
250
|
break;
|
224
251
|
}
|
225
252
|
},
|
226
|
-
table: [{3:1,4:2,5:[2,
|
227
|
-
defaultActions: {
|
253
|
+
table: [{3:1,4:2,5:[2,7],6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],22:[1,14],23:[1,15],24:[1,16]},{1:[3]},{5:[1,17]},{5:[2,6],7:18,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,6],22:[1,14],23:[1,15],24:[1,16]},{5:[2,5],6:20,8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,5],22:[1,14],23:[1,15],24:[1,16]},{17:23,18:[1,22],21:24,28:[1,25],35:[1,27],38:26},{5:[2,8],14:[2,8],15:[2,8],16:[2,8],19:[2,8],20:[2,8],22:[2,8],23:[2,8],24:[2,8]},{4:28,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],24:[1,16]},{4:29,6:3,7:4,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,5],20:[2,7],22:[1,14],23:[1,15],24:[1,16]},{5:[2,12],14:[2,12],15:[2,12],16:[2,12],19:[2,12],20:[2,12],22:[2,12],23:[2,12],24:[2,12]},{5:[2,13],14:[2,13],15:[2,13],16:[2,13],19:[2,13],20:[2,13],22:[2,13],23:[2,13],24:[2,13]},{5:[2,14],14:[2,14],15:[2,14],16:[2,14],19:[2,14],20:[2,14],22:[2,14],23:[2,14],24:[2,14]},{5:[2,15],14:[2,15],15:[2,15],16:[2,15],19:[2,15],20:[2,15],22:[2,15],23:[2,15],24:[2,15]},{17:30,21:24,28:[1,25],35:[1,27],38:26},{17:31,21:24,28:[1,25],35:[1,27],38:26},{17:32,21:24,28:[1,25],35:[1,27],38:26},{25:33,37:[1,34]},{1:[2,1]},{5:[2,2],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,2],22:[1,14],23:[1,15],24:[1,16]},{17:23,21:24,28:[1,25],35:[1,27],38:26},{5:[2,4],7:35,8:6,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,4],22:[1,14],23:[1,15],24:[1,16]},{5:[2,9],14:[2,9],15:[2,9],16:[2,9],19:[2,9],20:[2,9],22:[2,9],23:[2,9],24:[2,9]},{5:[2,23],14:[2,23],15:[2,23],16:[2,23],19:[2,23],20:[2,23],22:[2,23],23:[2,23],24:[2,23]},{18:[1,36]},{18:[2,27],21:41,26:37,27:38,28:[1,45],29:39,30:[1,42],31:[1,43],32:[1,44],33:40,34:46,35:[1,47],38:26},{18:[2,28]},{18:[2,45],28:[2,45],30:[2,45],31:[2,45],32:[2,45],35:[2,45],39:[1,48]},{18:[2,47],28:[2,47],30:[2,47],31:[2,47],32:[2,47],35:[2,47],39:[2,47]},{10:49,20:[1,50]},{10:51,20:[1,50]},{18:[1,52]},{18:[1,53]},{18:[1,54]},{18:[1,55],21:56,35:[1,27],38:26},{18:[2,44],35:[2,44]},{5:[2,3],8:21,9:7,11:8,12:9,13:10,14:[1,11],15:[1,12],16:[1,13],19:[1,19],20:[2,3],22:[1,14],23:[1,15],24:[1,16]},{14:[2,17],15:[2,17],16:[2,17],19:[2,17],20:[2,17],22:[2,17],23:[2,17],24:[2,17]},{18:[2,25],21:41,27:57,28:[1,45],29:58,30:[1,42],31:[1,43],32:[1,44],33:40,34:46,35:[1,47],38:26},{18:[2,26]},{18:[2,30],28:[2,30],30:[2,30],31:[2,30],32:[2,30],35:[2,30]},{18:[2,36],34:59,35:[1,60]},{18:[2,31],28:[2,31],30:[2,31],31:[2,31],32:[2,31],35:[2,31]},{18:[2,32],28:[2,32],30:[2,32],31:[2,32],32:[2,32],35:[2,32]},{18:[2,33],28:[2,33],30:[2,33],31:[2,33],32:[2,33],35:[2,33]},{18:[2,34],28:[2,34],30:[2,34],31:[2,34],32:[2,34],35:[2,34]},{18:[2,35],28:[2,35],30:[2,35],31:[2,35],32:[2,35],35:[2,35]},{18:[2,38],35:[2,38]},{18:[2,47],28:[2,47],30:[2,47],31:[2,47],32:[2,47],35:[2,47],36:[1,61],39:[2,47]},{35:[1,62]},{5:[2,10],14:[2,10],15:[2,10],16:[2,10],19:[2,10],20:[2,10],22:[2,10],23:[2,10],24:[2,10]},{21:63,35:[1,27],38:26},{5:[2,11],14:[2,11],15:[2,11],16:[2,11],19:[2,11],20:[2,11],22:[2,11],23:[2,11],24:[2,11]},{14:[2,16],15:[2,16],16:[2,16],19:[2,16],20:[2,16],22:[2,16],23:[2,16],24:[2,16]},{5:[2,19],14:[2,19],15:[2,19],16:[2,19],19:[2,19],20:[2,19],22:[2,19],23:[2,19],24:[2,19]},{5:[2,20],14:[2,20],15:[2,20],16:[2,20],19:[2,20],20:[2,20],22:[2,20],23:[2,20],24:[2,20]},{5:[2,21],14:[2,21],15:[2,21],16:[2,21],19:[2,21],20:[2,21],22:[2,21],23:[2,21],24:[2,21]},{18:[1,64]},{18:[2,24]},{18:[2,29],28:[2,29],30:[2,29],31:[2,29],32:[2,29],35:[2,29]},{18:[2,37],35:[2,37]},{36:[1,61]},{21:65,28:[1,69],30:[1,66],31:[1,67],32:[1,68],35:[1,27],38:26},{18:[2,46],28:[2,46],30:[2,46],31:[2,46],32:[2,46],35:[2,46],39:[2,46]},{18:[1,70]},{5:[2,22],14:[2,22],15:[2,22],16:[2,22],19:[2,22],20:[2,22],22:[2,22],23:[2,22],24:[2,22]},{18:[2,39],35:[2,39]},{18:[2,40],35:[2,40]},{18:[2,41],35:[2,41]},{18:[2,42],35:[2,42]},{18:[2,43],35:[2,43]},{5:[2,18],14:[2,18],15:[2,18],16:[2,18],19:[2,18],20:[2,18],22:[2,18],23:[2,18],24:[2,18]}],
|
254
|
+
defaultActions: {17:[2,1],25:[2,28],38:[2,26],57:[2,24]},
|
228
255
|
parseError: function parseError(str, hash) {
|
229
256
|
throw new Error(str);
|
230
257
|
},
|
@@ -521,7 +548,7 @@ case 2:
|
|
521
548
|
break;
|
522
549
|
case 3: yy_.yytext = yy_.yytext.substr(0, yy_.yyleng-4); this.popState(); return 15;
|
523
550
|
break;
|
524
|
-
case 4: return 24;
|
551
|
+
case 4: this.begin("par"); return 24;
|
525
552
|
break;
|
526
553
|
case 5: return 16;
|
527
554
|
break;
|
@@ -541,13 +568,13 @@ case 12: yy_.yytext = yy_.yytext.substr(3,yy_.yyleng-5); this.popState(); return
|
|
541
568
|
break;
|
542
569
|
case 13: return 22;
|
543
570
|
break;
|
544
|
-
case 14: return
|
571
|
+
case 14: return 36;
|
545
572
|
break;
|
546
|
-
case 15: return
|
573
|
+
case 15: return 35;
|
547
574
|
break;
|
548
|
-
case 16: return
|
575
|
+
case 16: return 35;
|
549
576
|
break;
|
550
|
-
case 17: return
|
577
|
+
case 17: return 39;
|
551
578
|
break;
|
552
579
|
case 18: /*ignore whitespace*/
|
553
580
|
break;
|
@@ -555,55 +582,39 @@ case 19: this.popState(); return 18;
|
|
555
582
|
break;
|
556
583
|
case 20: this.popState(); return 18;
|
557
584
|
break;
|
558
|
-
case 21: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return
|
585
|
+
case 21: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\"/g,'"'); return 30;
|
559
586
|
break;
|
560
|
-
case 22: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\'/g,"'"); return
|
587
|
+
case 22: yy_.yytext = yy_.yytext.substr(1,yy_.yyleng-2).replace(/\\'/g,"'"); return 30;
|
561
588
|
break;
|
562
|
-
case 23: yy_.yytext = yy_.yytext.substr(1); return
|
589
|
+
case 23: yy_.yytext = yy_.yytext.substr(1); return 28;
|
563
590
|
break;
|
564
|
-
case 24: return
|
591
|
+
case 24: return 32;
|
565
592
|
break;
|
566
|
-
case 25: return
|
593
|
+
case 25: return 32;
|
567
594
|
break;
|
568
|
-
case 26: return
|
595
|
+
case 26: return 31;
|
569
596
|
break;
|
570
|
-
case 27: return
|
597
|
+
case 27: return 35;
|
571
598
|
break;
|
572
|
-
case 28: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return
|
599
|
+
case 28: yy_.yytext = yy_.yytext.substr(1, yy_.yyleng-2); return 35;
|
573
600
|
break;
|
574
601
|
case 29: return 'INVALID';
|
575
602
|
break;
|
576
|
-
case 30:
|
603
|
+
case 30: /*ignore whitespace*/
|
604
|
+
break;
|
605
|
+
case 31: this.popState(); return 37;
|
606
|
+
break;
|
607
|
+
case 32: return 5;
|
577
608
|
break;
|
578
609
|
}
|
579
610
|
};
|
580
|
-
lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|$)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\{\{>)/,/^(?:\{\{#)/,/^(?:\{\{\/)/,/^(?:\{\{\^)/,/^(?:\{\{\s*else\b)/,/^(?:\{\{\{)/,/^(?:\{\{&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{)/,/^(?:=)/,/^(?:\.(?=[} ]))/,/^(?:\.\.)/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}\}\})/,/^(?:\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@[a-zA-Z]+)/,/^(?:true(?=[}\s]))/,/^(?:false(?=[}\s]))/,/^(?:[0-9]+(?=[}\s]))/,/^(?:[a-zA-Z0-9_$-]+(?=[=}\s\/.]))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:$)/];
|
581
|
-
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,
|
611
|
+
lexer.rules = [/^(?:[^\x00]*?(?=(\{\{)))/,/^(?:[^\x00]+)/,/^(?:[^\x00]{2,}?(?=(\{\{|$)))/,/^(?:[\s\S]*?--\}\})/,/^(?:\{\{>)/,/^(?:\{\{#)/,/^(?:\{\{\/)/,/^(?:\{\{\^)/,/^(?:\{\{\s*else\b)/,/^(?:\{\{\{)/,/^(?:\{\{&)/,/^(?:\{\{!--)/,/^(?:\{\{![\s\S]*?\}\})/,/^(?:\{\{)/,/^(?:=)/,/^(?:\.(?=[} ]))/,/^(?:\.\.)/,/^(?:[\/.])/,/^(?:\s+)/,/^(?:\}\}\})/,/^(?:\}\})/,/^(?:"(\\["]|[^"])*")/,/^(?:'(\\[']|[^'])*')/,/^(?:@[a-zA-Z]+)/,/^(?:true(?=[}\s]))/,/^(?:false(?=[}\s]))/,/^(?:[0-9]+(?=[}\s]))/,/^(?:[a-zA-Z0-9_$-]+(?=[=}\s\/.]))/,/^(?:\[[^\]]*\])/,/^(?:.)/,/^(?:\s+)/,/^(?:[a-zA-Z0-9_$-/]+)/,/^(?:$)/];
|
612
|
+
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,32],"inclusive":false},"emu":{"rules":[2],"inclusive":false},"com":{"rules":[3],"inclusive":false},"par":{"rules":[30,31],"inclusive":false},"INITIAL":{"rules":[0,1,32],"inclusive":true}};
|
582
613
|
return lexer;})()
|
583
614
|
parser.lexer = lexer;
|
584
615
|
function Parser () { this.yy = {}; }Parser.prototype = parser;parser.Parser = Parser;
|
585
616
|
return new Parser;
|
586
|
-
})()
|
587
|
-
if (typeof require !== 'undefined' && typeof exports !== 'undefined') {
|
588
|
-
exports.parser = handlebars;
|
589
|
-
exports.Parser = handlebars.Parser;
|
590
|
-
exports.parse = function () { return handlebars.parse.apply(handlebars, arguments); }
|
591
|
-
exports.main = function commonjsMain(args) {
|
592
|
-
if (!args[1])
|
593
|
-
throw new Error('Usage: '+args[0]+' FILE');
|
594
|
-
var source, cwd;
|
595
|
-
if (typeof process !== 'undefined') {
|
596
|
-
source = require('fs').readFileSync(require('path').resolve(args[1]), "utf8");
|
597
|
-
} else {
|
598
|
-
source = require("file").path(require("file").cwd()).join(args[1]).read({charset: "utf-8"});
|
599
|
-
}
|
600
|
-
return exports.parser.parse(source);
|
601
|
-
}
|
602
|
-
if (typeof module !== 'undefined' && require.main === module) {
|
603
|
-
exports.main(typeof process !== 'undefined' ? process.argv.slice(1) : require("system").args);
|
604
|
-
}
|
605
|
-
};
|
606
|
-
;
|
617
|
+
})();;
|
607
618
|
// lib/handlebars/compiler/base.js
|
608
619
|
Handlebars.Parser = handlebars;
|
609
620
|
|
@@ -614,17 +625,7 @@ Handlebars.parse = function(string) {
|
|
614
625
|
|
615
626
|
Handlebars.print = function(ast) {
|
616
627
|
return new Handlebars.PrintVisitor().accept(ast);
|
617
|
-
}
|
618
|
-
|
619
|
-
Handlebars.logger = {
|
620
|
-
DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
|
621
|
-
|
622
|
-
// override in the host environment
|
623
|
-
log: function(level, str) {}
|
624
|
-
};
|
625
|
-
|
626
|
-
Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); };
|
627
|
-
;
|
628
|
+
};;
|
628
629
|
// lib/handlebars/compiler/ast.js
|
629
630
|
(function() {
|
630
631
|
|
@@ -658,13 +659,10 @@ Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); };
|
|
658
659
|
// pass or at runtime.
|
659
660
|
};
|
660
661
|
|
661
|
-
Handlebars.AST.PartialNode = function(
|
662
|
-
this.type
|
663
|
-
|
664
|
-
|
665
|
-
|
666
|
-
this.id = id;
|
667
|
-
this.context = context;
|
662
|
+
Handlebars.AST.PartialNode = function(partialName, context) {
|
663
|
+
this.type = "partial";
|
664
|
+
this.partialName = partialName;
|
665
|
+
this.context = context;
|
668
666
|
};
|
669
667
|
|
670
668
|
var verifyMatch = function(open, close) {
|
@@ -718,6 +716,11 @@ Handlebars.log = function(level, str) { Handlebars.logger.log(level, str); };
|
|
718
716
|
this.isSimple = parts.length === 1 && !this.isScoped && depth === 0;
|
719
717
|
};
|
720
718
|
|
719
|
+
Handlebars.AST.PartialNameNode = function(name) {
|
720
|
+
this.type = "PARTIAL_NAME";
|
721
|
+
this.name = name;
|
722
|
+
};
|
723
|
+
|
721
724
|
Handlebars.AST.DataNode = function(id) {
|
722
725
|
this.type = "DATA";
|
723
726
|
this.id = id;
|
@@ -797,11 +800,7 @@ Handlebars.SafeString.prototype.toString = function() {
|
|
797
800
|
},
|
798
801
|
|
799
802
|
isEmpty: function(value) {
|
800
|
-
if (
|
801
|
-
return true;
|
802
|
-
} else if (value === null) {
|
803
|
-
return true;
|
804
|
-
} else if (value === false) {
|
803
|
+
if (!value && value !== 0) {
|
805
804
|
return true;
|
806
805
|
} else if(Object.prototype.toString.call(value) === "[object Array]" && value.length === 0) {
|
807
806
|
return true;
|
@@ -971,7 +970,7 @@ Handlebars.JavaScriptCompiler = function() {};
|
|
971
970
|
},
|
972
971
|
|
973
972
|
partial: function(partial) {
|
974
|
-
var
|
973
|
+
var partialName = partial.partialName;
|
975
974
|
this.usePartial = true;
|
976
975
|
|
977
976
|
if(partial.context) {
|
@@ -980,7 +979,7 @@ Handlebars.JavaScriptCompiler = function() {};
|
|
980
979
|
this.opcode('push', 'depth0');
|
981
980
|
}
|
982
981
|
|
983
|
-
this.opcode('invokePartial',
|
982
|
+
this.opcode('invokePartial', partialName.name);
|
984
983
|
this.opcode('append');
|
985
984
|
},
|
986
985
|
|
@@ -1341,7 +1340,7 @@ Handlebars.JavaScriptCompiler = function() {};
|
|
1341
1340
|
|
1342
1341
|
this.replaceStack(function(current) {
|
1343
1342
|
params.splice(1, 0, current);
|
1344
|
-
return
|
1343
|
+
return "blockHelperMissing.call(" + params.join(", ") + ")";
|
1345
1344
|
});
|
1346
1345
|
},
|
1347
1346
|
|
@@ -1616,7 +1615,7 @@ Handlebars.JavaScriptCompiler = function() {};
|
|
1616
1615
|
}
|
1617
1616
|
|
1618
1617
|
this.context.aliases.self = "this";
|
1619
|
-
this.pushStack("self.invokePartial(" + params.join(", ") + ")
|
1618
|
+
this.pushStack("self.invokePartial(" + params.join(", ") + ")");
|
1620
1619
|
},
|
1621
1620
|
|
1622
1621
|
// [assignToHash]
|
@@ -1697,21 +1696,28 @@ Handlebars.JavaScriptCompiler = function() {};
|
|
1697
1696
|
},
|
1698
1697
|
|
1699
1698
|
pushStack: function(item) {
|
1700
|
-
this.
|
1701
|
-
this.
|
1702
|
-
|
1699
|
+
var stack = this.incrStack();
|
1700
|
+
this.source.push(stack + " = " + item + ";");
|
1701
|
+
this.compileStack.push(stack);
|
1702
|
+
return stack;
|
1703
1703
|
},
|
1704
1704
|
|
1705
1705
|
replaceStack: function(callback) {
|
1706
|
-
var
|
1706
|
+
var stack = this.topStack(),
|
1707
|
+
item = callback.call(this, stack);
|
1707
1708
|
|
1708
|
-
|
1709
|
-
|
1709
|
+
// Prevent modification of the context depth variable. Through replaceStack
|
1710
|
+
if (/^depth/.test(stack)) {
|
1711
|
+
stack = this.nextStack();
|
1712
|
+
}
|
1713
|
+
|
1714
|
+
this.source.push(stack + " = " + item + ";");
|
1715
|
+
return stack;
|
1710
1716
|
},
|
1711
1717
|
|
1712
1718
|
nextStack: function(skipCompileStack) {
|
1713
1719
|
var name = this.incrStack();
|
1714
|
-
this.compileStack.push(
|
1720
|
+
this.compileStack.push(name);
|
1715
1721
|
return name;
|
1716
1722
|
},
|
1717
1723
|
|
@@ -1846,16 +1852,28 @@ Handlebars.JavaScriptCompiler = function() {};
|
|
1846
1852
|
})(Handlebars.Compiler, Handlebars.JavaScriptCompiler);
|
1847
1853
|
|
1848
1854
|
Handlebars.precompile = function(string, options) {
|
1849
|
-
|
1855
|
+
if (typeof string !== 'string') {
|
1856
|
+
throw new Handlebars.Exception("You must pass a string to Handlebars.compile. You passed " + string);
|
1857
|
+
}
|
1850
1858
|
|
1859
|
+
options = options || {};
|
1860
|
+
if (!('data' in options)) {
|
1861
|
+
options.data = true;
|
1862
|
+
}
|
1851
1863
|
var ast = Handlebars.parse(string);
|
1852
1864
|
var environment = new Handlebars.Compiler().compile(ast, options);
|
1853
1865
|
return new Handlebars.JavaScriptCompiler().compile(environment, options);
|
1854
1866
|
};
|
1855
1867
|
|
1856
1868
|
Handlebars.compile = function(string, options) {
|
1857
|
-
|
1869
|
+
if (typeof string !== 'string') {
|
1870
|
+
throw new Handlebars.Exception("You must pass a string to Handlebars.compile. You passed " + string);
|
1871
|
+
}
|
1858
1872
|
|
1873
|
+
options = options || {};
|
1874
|
+
if (!('data' in options)) {
|
1875
|
+
options.data = true;
|
1876
|
+
}
|
1859
1877
|
var compiled;
|
1860
1878
|
function compile() {
|
1861
1879
|
var ast = Handlebars.parse(string);
|
@@ -62,6 +62,24 @@ Handlebars.createFrame = Object.create || function(object) {
|
|
62
62
|
return obj;
|
63
63
|
};
|
64
64
|
|
65
|
+
Handlebars.logger = {
|
66
|
+
DEBUG: 0, INFO: 1, WARN: 2, ERROR: 3, level: 3,
|
67
|
+
|
68
|
+
methodMap: {0: 'debug', 1: 'info', 2: 'warn', 3: 'error'},
|
69
|
+
|
70
|
+
// can be overridden in the host environment
|
71
|
+
log: function(level, obj) {
|
72
|
+
if (Handlebars.logger.level <= level) {
|
73
|
+
var method = Handlebars.logger.methodMap[level];
|
74
|
+
if (typeof console !== 'undefined' && console[method]) {
|
75
|
+
console[method].call(console, obj);
|
76
|
+
}
|
77
|
+
}
|
78
|
+
}
|
79
|
+
};
|
80
|
+
|
81
|
+
Handlebars.log = function(level, obj) { Handlebars.logger.log(level, obj); };
|
82
|
+
|
65
83
|
Handlebars.registerHelper('each', function(context, options) {
|
66
84
|
var fn = options.fn, inverse = options.inverse;
|
67
85
|
var i = 0, ret = "", data;
|
@@ -117,8 +135,9 @@ Handlebars.registerHelper('with', function(context, options) {
|
|
117
135
|
return options.fn(context);
|
118
136
|
});
|
119
137
|
|
120
|
-
Handlebars.registerHelper('log', function(context) {
|
121
|
-
|
138
|
+
Handlebars.registerHelper('log', function(context, options) {
|
139
|
+
var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
|
140
|
+
Handlebars.log(level, context);
|
122
141
|
});
|
123
142
|
|
124
143
|
}(this.Handlebars));
|
@@ -176,11 +195,7 @@ Handlebars.SafeString.prototype.toString = function() {
|
|
176
195
|
},
|
177
196
|
|
178
197
|
isEmpty: function(value) {
|
179
|
-
if (
|
180
|
-
return true;
|
181
|
-
} else if (value === null) {
|
182
|
-
return true;
|
183
|
-
} else if (value === false) {
|
198
|
+
if (!value && value !== 0) {
|
184
199
|
return true;
|
185
200
|
} else if(Object.prototype.toString.call(value) === "[object Array]" && value.length === 0) {
|
186
201
|
return true;
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: handlebars_assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.8.
|
4
|
+
version: 0.8.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-16 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: execjs
|