handlebars_assets 0.8.1 → 0.8.2
Sign up to get free protection for your applications and to get access to all the features.
- 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
|