handlebars_assets 0.12.0 → 0.12.1

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.
@@ -22,31 +22,45 @@ THE SOFTWARE.
22
22
 
23
23
  */
24
24
 
25
- // lib/handlebars/base.js
26
-
27
- /*jshint eqnull:true*/
28
- this.Handlebars = {};
25
+ // lib/handlebars/browser-prefix.js
26
+ var Handlebars = {};
29
27
 
30
- (function(Handlebars) {
28
+ (function(Handlebars, undefined) {
29
+ ;
30
+ // lib/handlebars/base.js
31
31
 
32
- Handlebars.VERSION = "1.0.0-rc.3";
33
- Handlebars.COMPILER_REVISION = 2;
32
+ Handlebars.VERSION = "1.0.0-rc.4";
33
+ Handlebars.COMPILER_REVISION = 3;
34
34
 
35
35
  Handlebars.REVISION_CHANGES = {
36
36
  1: '<= 1.0.rc.2', // 1.0.rc.2 is actually rev2 but doesn't report it
37
- 2: '>= 1.0.0-rc.3'
37
+ 2: '== 1.0.0-rc.3',
38
+ 3: '>= 1.0.0-rc.4'
38
39
  };
39
40
 
40
41
  Handlebars.helpers = {};
41
42
  Handlebars.partials = {};
42
43
 
44
+ var toString = Object.prototype.toString,
45
+ functionType = '[object Function]',
46
+ objectType = '[object Object]';
47
+
43
48
  Handlebars.registerHelper = function(name, fn, inverse) {
44
- if(inverse) { fn.not = inverse; }
45
- this.helpers[name] = fn;
49
+ if (toString.call(name) === objectType) {
50
+ if (inverse || fn) { throw new Handlebars.Exception('Arg not supported with multiple helpers'); }
51
+ Handlebars.Utils.extend(this.helpers, name);
52
+ } else {
53
+ if (inverse) { fn.not = inverse; }
54
+ this.helpers[name] = fn;
55
+ }
46
56
  };
47
57
 
48
58
  Handlebars.registerPartial = function(name, str) {
49
- this.partials[name] = str;
59
+ if (toString.call(name) === objectType) {
60
+ Handlebars.Utils.extend(this.partials, name);
61
+ } else {
62
+ this.partials[name] = str;
63
+ }
50
64
  };
51
65
 
52
66
  Handlebars.registerHelper('helperMissing', function(arg) {
@@ -57,13 +71,9 @@ Handlebars.registerHelper('helperMissing', function(arg) {
57
71
  }
58
72
  });
59
73
 
60
- var toString = Object.prototype.toString, functionType = "[object Function]";
61
-
62
74
  Handlebars.registerHelper('blockHelperMissing', function(context, options) {
63
75
  var inverse = options.inverse || function() {}, fn = options.fn;
64
76
 
65
-
66
- var ret = "";
67
77
  var type = toString.call(context);
68
78
 
69
79
  if(type === functionType) { context = context.call(this); }
@@ -154,23 +164,17 @@ Handlebars.registerHelper('if', function(context, options) {
154
164
  });
155
165
 
156
166
  Handlebars.registerHelper('unless', function(context, options) {
157
- var fn = options.fn, inverse = options.inverse;
158
- options.fn = inverse;
159
- options.inverse = fn;
160
-
161
- return Handlebars.helpers['if'].call(this, context, options);
167
+ return Handlebars.helpers['if'].call(this, context, {fn: options.inverse, inverse: options.fn});
162
168
  });
163
169
 
164
170
  Handlebars.registerHelper('with', function(context, options) {
165
- return options.fn(context);
171
+ if (!Handlebars.Utils.isEmpty(context)) return options.fn(context);
166
172
  });
167
173
 
168
174
  Handlebars.registerHelper('log', function(context, options) {
169
175
  var level = options.data && options.data.level != null ? parseInt(options.data.level, 10) : 1;
170
176
  Handlebars.log(level, context);
171
177
  });
172
-
173
- }(this.Handlebars));
174
178
  ;
175
179
  // lib/handlebars/utils.js
176
180
 
@@ -194,48 +198,61 @@ Handlebars.SafeString.prototype.toString = function() {
194
198
  return this.string.toString();
195
199
  };
196
200
 
197
- (function() {
198
- var escape = {
199
- "&": "&amp;",
200
- "<": "&lt;",
201
- ">": "&gt;",
202
- '"': "&quot;",
203
- "'": "&#x27;",
204
- "`": "&#x60;"
205
- };
206
-
207
- var badChars = /[&<>"'`]/g;
208
- var possible = /[&<>"'`]/;
209
-
210
- var escapeChar = function(chr) {
211
- return escape[chr] || "&amp;";
212
- };
213
-
214
- Handlebars.Utils = {
215
- escapeExpression: function(string) {
216
- // don't escape SafeStrings, since they're already safe
217
- if (string instanceof Handlebars.SafeString) {
218
- return string.toString();
219
- } else if (string == null || string === false) {
220
- return "";
221
- }
201
+ var escape = {
202
+ "&": "&amp;",
203
+ "<": "&lt;",
204
+ ">": "&gt;",
205
+ '"': "&quot;",
206
+ "'": "&#x27;",
207
+ "`": "&#x60;"
208
+ };
209
+
210
+ var badChars = /[&<>"'`]/g;
211
+ var possible = /[&<>"'`]/;
212
+
213
+ var escapeChar = function(chr) {
214
+ return escape[chr] || "&amp;";
215
+ };
222
216
 
223
- if(!possible.test(string)) { return string; }
224
- return string.replace(badChars, escapeChar);
225
- },
226
-
227
- isEmpty: function(value) {
228
- if (!value && value !== 0) {
229
- return true;
230
- } else if(Object.prototype.toString.call(value) === "[object Array]" && value.length === 0) {
231
- return true;
232
- } else {
233
- return false;
217
+ Handlebars.Utils = {
218
+ extend: function(obj, value) {
219
+ for(var key in value) {
220
+ if(value.hasOwnProperty(key)) {
221
+ obj[key] = value[key];
234
222
  }
235
223
  }
236
- };
237
- })();;
224
+ },
225
+
226
+ escapeExpression: function(string) {
227
+ // don't escape SafeStrings, since they're already safe
228
+ if (string instanceof Handlebars.SafeString) {
229
+ return string.toString();
230
+ } else if (string == null || string === false) {
231
+ return "";
232
+ }
233
+
234
+ // Force a string conversion as this will be done by the append regardless and
235
+ // the regex test will do this transparently behind the scenes, causing issues if
236
+ // an object's to string has escaped characters in it.
237
+ string = string.toString();
238
+
239
+ if(!possible.test(string)) { return string; }
240
+ return string.replace(badChars, escapeChar);
241
+ },
242
+
243
+ isEmpty: function(value) {
244
+ if (!value && value !== 0) {
245
+ return true;
246
+ } else if(toString.call(value) === "[object Array]" && value.length === 0) {
247
+ return true;
248
+ } else {
249
+ return false;
250
+ }
251
+ }
252
+ };
253
+ ;
238
254
  // lib/handlebars/runtime.js
255
+
239
256
  Handlebars.VM = {
240
257
  template: function(templateSpec) {
241
258
  // Just add water
@@ -246,13 +263,11 @@ Handlebars.VM = {
246
263
  program: function(i, fn, data) {
247
264
  var programWrapper = this.programs[i];
248
265
  if(data) {
249
- return Handlebars.VM.program(fn, data);
250
- } else if(programWrapper) {
251
- return programWrapper;
252
- } else {
253
- programWrapper = this.programs[i] = Handlebars.VM.program(fn);
254
- return programWrapper;
266
+ programWrapper = Handlebars.VM.program(i, fn, data);
267
+ } else if (!programWrapper) {
268
+ programWrapper = this.programs[i] = Handlebars.VM.program(i, fn);
255
269
  }
270
+ return programWrapper;
256
271
  },
257
272
  programWithDepth: Handlebars.VM.programWithDepth,
258
273
  noop: Handlebars.VM.noop,
@@ -284,21 +299,27 @@ Handlebars.VM = {
284
299
  };
285
300
  },
286
301
 
287
- programWithDepth: function(fn, data, $depth) {
288
- var args = Array.prototype.slice.call(arguments, 2);
302
+ programWithDepth: function(i, fn, data /*, $depth */) {
303
+ var args = Array.prototype.slice.call(arguments, 3);
289
304
 
290
- return function(context, options) {
305
+ var program = function(context, options) {
291
306
  options = options || {};
292
307
 
293
308
  return fn.apply(this, [context, options.data || data].concat(args));
294
309
  };
310
+ program.program = i;
311
+ program.depth = args.length;
312
+ return program;
295
313
  },
296
- program: function(fn, data) {
297
- return function(context, options) {
314
+ program: function(i, fn, data) {
315
+ var program = function(context, options) {
298
316
  options = options || {};
299
317
 
300
318
  return fn(context, options.data || data);
301
319
  };
320
+ program.program = i;
321
+ program.depth = 0;
322
+ return program;
302
323
  },
303
324
  noop: function() { return ""; },
304
325
  invokePartial: function(partial, name, context, helpers, partials, data) {
@@ -319,3 +340,6 @@ Handlebars.VM = {
319
340
 
320
341
  Handlebars.template = Handlebars.VM.template;
321
342
  ;
343
+ // lib/handlebars/browser-suffix.js
344
+ })(Handlebars);
345
+ ;
metadata CHANGED
@@ -1,128 +1,113 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: handlebars_assets
3
3
  version: !ruby/object:Gem::Version
4
- prerelease:
5
- version: 0.12.0
4
+ version: 0.12.1
6
5
  platform: ruby
7
6
  authors:
8
7
  - Les Hill
9
8
  autorequire:
10
9
  bindir: bin
11
10
  cert_chain: []
12
- date: 2013-02-17 00:00:00.000000000 Z
11
+ date: 2013-05-21 00:00:00.000000000 Z
13
12
  dependencies:
14
13
  - !ruby/object:Gem::Dependency
15
14
  name: execjs
16
- version_requirements: !ruby/object:Gem::Requirement
17
- none: false
18
- requirements:
19
- - - ! '>='
20
- - !ruby/object:Gem::Version
21
- version: 1.2.9
22
15
  requirement: !ruby/object:Gem::Requirement
23
- none: false
24
16
  requirements:
25
17
  - - ! '>='
26
18
  - !ruby/object:Gem::Version
27
19
  version: 1.2.9
28
20
  type: :runtime
29
21
  prerelease: false
30
- - !ruby/object:Gem::Dependency
31
- name: tilt
32
22
  version_requirements: !ruby/object:Gem::Requirement
33
- none: false
34
23
  requirements:
35
24
  - - ! '>='
36
25
  - !ruby/object:Gem::Version
37
- version: '0'
26
+ version: 1.2.9
27
+ - !ruby/object:Gem::Dependency
28
+ name: tilt
38
29
  requirement: !ruby/object:Gem::Requirement
39
- none: false
40
30
  requirements:
41
31
  - - ! '>='
42
32
  - !ruby/object:Gem::Version
43
33
  version: '0'
44
34
  type: :runtime
45
35
  prerelease: false
46
- - !ruby/object:Gem::Dependency
47
- name: sprockets
48
36
  version_requirements: !ruby/object:Gem::Requirement
49
- none: false
50
37
  requirements:
51
38
  - - ! '>='
52
39
  - !ruby/object:Gem::Version
53
- version: 2.0.3
40
+ version: '0'
41
+ - !ruby/object:Gem::Dependency
42
+ name: sprockets
54
43
  requirement: !ruby/object:Gem::Requirement
55
- none: false
56
44
  requirements:
57
45
  - - ! '>='
58
46
  - !ruby/object:Gem::Version
59
47
  version: 2.0.3
60
48
  type: :runtime
61
49
  prerelease: false
62
- - !ruby/object:Gem::Dependency
63
- name: debugger
64
50
  version_requirements: !ruby/object:Gem::Requirement
65
- none: false
66
51
  requirements:
67
52
  - - ! '>='
68
53
  - !ruby/object:Gem::Version
69
- version: '0'
54
+ version: 2.0.3
55
+ - !ruby/object:Gem::Dependency
56
+ name: debugger
70
57
  requirement: !ruby/object:Gem::Requirement
71
- none: false
72
58
  requirements:
73
59
  - - ! '>='
74
60
  - !ruby/object:Gem::Version
75
61
  version: '0'
76
62
  type: :development
77
63
  prerelease: false
78
- - !ruby/object:Gem::Dependency
79
- name: haml
80
64
  version_requirements: !ruby/object:Gem::Requirement
81
- none: false
82
65
  requirements:
83
66
  - - ! '>='
84
67
  - !ruby/object:Gem::Version
85
68
  version: '0'
69
+ - !ruby/object:Gem::Dependency
70
+ name: haml
86
71
  requirement: !ruby/object:Gem::Requirement
87
- none: false
88
72
  requirements:
89
73
  - - ! '>='
90
74
  - !ruby/object:Gem::Version
91
75
  version: '0'
92
76
  type: :development
93
77
  prerelease: false
94
- - !ruby/object:Gem::Dependency
95
- name: rake
96
78
  version_requirements: !ruby/object:Gem::Requirement
97
- none: false
98
79
  requirements:
99
80
  - - ! '>='
100
81
  - !ruby/object:Gem::Version
101
82
  version: '0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rake
102
85
  requirement: !ruby/object:Gem::Requirement
103
- none: false
104
86
  requirements:
105
87
  - - ! '>='
106
88
  - !ruby/object:Gem::Version
107
89
  version: '0'
108
90
  type: :development
109
91
  prerelease: false
110
- - !ruby/object:Gem::Dependency
111
- name: slim
112
92
  version_requirements: !ruby/object:Gem::Requirement
113
- none: false
114
93
  requirements:
115
94
  - - ! '>='
116
95
  - !ruby/object:Gem::Version
117
96
  version: '0'
97
+ - !ruby/object:Gem::Dependency
98
+ name: slim
118
99
  requirement: !ruby/object:Gem::Requirement
119
- none: false
120
100
  requirements:
121
101
  - - ! '>='
122
102
  - !ruby/object:Gem::Version
123
103
  version: '0'
124
104
  type: :development
125
105
  prerelease: false
106
+ version_requirements: !ruby/object:Gem::Requirement
107
+ requirements:
108
+ - - ! '>='
109
+ - !ruby/object:Gem::Version
110
+ version: '0'
126
111
  description: Compile Handlebars templates in the Rails asset pipeline.
127
112
  email:
128
113
  - leshill@gmail.com
@@ -156,27 +141,26 @@ files:
156
141
  - vendor/assets/javascripts/handlebars.runtime.js
157
142
  homepage: ''
158
143
  licenses: []
144
+ metadata: {}
159
145
  post_install_message:
160
146
  rdoc_options: []
161
147
  require_paths:
162
148
  - lib
163
149
  required_ruby_version: !ruby/object:Gem::Requirement
164
- none: false
165
150
  requirements:
166
151
  - - ! '>='
167
152
  - !ruby/object:Gem::Version
168
153
  version: '0'
169
154
  required_rubygems_version: !ruby/object:Gem::Requirement
170
- none: false
171
155
  requirements:
172
156
  - - ! '>='
173
157
  - !ruby/object:Gem::Version
174
158
  version: '0'
175
159
  requirements: []
176
160
  rubyforge_project: handlebars_assets
177
- rubygems_version: 1.8.25
161
+ rubygems_version: 2.0.3
178
162
  signing_key:
179
- specification_version: 3
163
+ specification_version: 4
180
164
  summary: Compile Handlebars templates in the Rails asset pipeline.
181
165
  test_files:
182
166
  - test/edge/handlebars.js
@@ -186,3 +170,4 @@ test_files:
186
170
  - test/handlebars_assets/tilt_handlebars_test.rb
187
171
  - test/patch/patch.js
188
172
  - test/test_helper.rb
173
+ has_rdoc: