templebars 0.1.1 → 0.2.0

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.
@@ -1,7 +1,11 @@
1
1
  // lib/handlebars/base.js
2
- var Handlebars = {};
3
2
 
4
- Handlebars.VERSION = "1.0.beta.6";
3
+ /*jshint eqnull:true*/
4
+ this.Handlebars = {};
5
+
6
+ (function(Handlebars) {
7
+
8
+ Handlebars.VERSION = "1.0.rc.1";
5
9
 
6
10
  Handlebars.helpers = {};
7
11
  Handlebars.partials = {};
@@ -40,25 +44,36 @@ Handlebars.registerHelper('blockHelperMissing', function(context, options) {
40
44
  return inverse(this);
41
45
  } else if(type === "[object Array]") {
42
46
  if(context.length > 0) {
43
- for(var i=0, j=context.length; i<j; i++) {
44
- ret = ret + fn(context[i]);
45
- }
47
+ return Handlebars.helpers.each(context, options);
46
48
  } else {
47
- ret = inverse(this);
49
+ return inverse(this);
48
50
  }
49
- return ret;
50
51
  } else {
51
52
  return fn(context);
52
53
  }
53
54
  });
54
55
 
56
+ Handlebars.K = function() {};
57
+
58
+ Handlebars.createFrame = Object.create || function(object) {
59
+ Handlebars.K.prototype = object;
60
+ var obj = new Handlebars.K();
61
+ Handlebars.K.prototype = null;
62
+ return obj;
63
+ };
64
+
55
65
  Handlebars.registerHelper('each', function(context, options) {
56
66
  var fn = options.fn, inverse = options.inverse;
57
- var ret = "";
67
+ var ret = "", data;
68
+
69
+ if (options.data) {
70
+ data = Handlebars.createFrame(options.data);
71
+ }
58
72
 
59
73
  if(context && context.length > 0) {
60
74
  for(var i=0, j=context.length; i<j; i++) {
61
- ret = ret + fn(context[i]);
75
+ if (data) { data.index = i; }
76
+ ret = ret + fn(context[i], { data: data });
62
77
  }
63
78
  } else {
64
79
  ret = inverse(this);
@@ -92,6 +107,8 @@ Handlebars.registerHelper('with', function(context, options) {
92
107
  Handlebars.registerHelper('log', function(context) {
93
108
  Handlebars.log(context);
94
109
  });
110
+
111
+ }(this.Handlebars));
95
112
  ;
96
113
  // lib/handlebars/utils.js
97
114
  Handlebars.Exception = function(message) {
@@ -103,7 +120,7 @@ Handlebars.Exception = function(message) {
103
120
 
104
121
  this.message = tmp.message;
105
122
  };
106
- Handlebars.Exception.prototype = new Error;
123
+ Handlebars.Exception.prototype = new Error();
107
124
 
108
125
  // Build out our basic SafeString type
109
126
  Handlebars.SafeString = function(string) {
@@ -115,6 +132,7 @@ Handlebars.SafeString.prototype.toString = function() {
115
132
 
116
133
  (function() {
117
134
  var escape = {
135
+ "&": "&amp;",
118
136
  "<": "&lt;",
119
137
  ">": "&gt;",
120
138
  '"': "&quot;",
@@ -122,7 +140,7 @@ Handlebars.SafeString.prototype.toString = function() {
122
140
  "`": "&#x60;"
123
141
  };
124
142
 
125
- var badChars = /&(?!\w+;)|[<>"'`]/g;
143
+ var badChars = /[&<>"'`]/g;
126
144
  var possible = /[&<>"'`]/;
127
145
 
128
146
  var escapeChar = function(chr) {
@@ -204,7 +222,7 @@ Handlebars.VM = {
204
222
  },
205
223
  noop: function() { return ""; },
206
224
  invokePartial: function(partial, name, context, helpers, partials, data) {
207
- options = { helpers: helpers, partials: partials, data: data };
225
+ var options = { helpers: helpers, partials: partials, data: data };
208
226
 
209
227
  if(partial === undefined) {
210
228
  throw new Handlebars.Exception("The partial " + name + " could not be found");
@@ -213,7 +231,7 @@ Handlebars.VM = {
213
231
  } else if (!Handlebars.compile) {
214
232
  throw new Handlebars.Exception("The partial " + name + " could not be compiled when running in runtime-only mode");
215
233
  } else {
216
- partials[name] = Handlebars.compile(partial);
234
+ partials[name] = Handlebars.compile(partial, {data: data !== undefined});
217
235
  return partials[name](context, options);
218
236
  }
219
237
  }
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: templebars
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.1
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-11 00:00:00.000000000 Z
12
+ date: 2012-09-17 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: sprockets
16
- requirement: &70196908357360 !ruby/object:Gem::Requirement
16
+ requirement: !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,15 @@ dependencies:
21
21
  version: 2.0.3
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70196908357360
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: 2.0.3
25
30
  - !ruby/object:Gem::Dependency
26
31
  name: execjs
27
- requirement: &70196908356700 !ruby/object:Gem::Requirement
32
+ requirement: !ruby/object:Gem::Requirement
28
33
  none: false
29
34
  requirements:
30
35
  - - ! '>='
@@ -32,10 +37,15 @@ dependencies:
32
37
  version: '0'
33
38
  type: :runtime
34
39
  prerelease: false
35
- version_requirements: *70196908356700
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: '0'
36
46
  - !ruby/object:Gem::Dependency
37
47
  name: tilt
38
- requirement: &70196908355180 !ruby/object:Gem::Requirement
48
+ requirement: !ruby/object:Gem::Requirement
39
49
  none: false
40
50
  requirements:
41
51
  - - ! '>='
@@ -43,10 +53,15 @@ dependencies:
43
53
  version: '0'
44
54
  type: :runtime
45
55
  prerelease: false
46
- version_requirements: *70196908355180
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
47
62
  - !ruby/object:Gem::Dependency
48
63
  name: rake
49
- requirement: &70196908354240 !ruby/object:Gem::Requirement
64
+ requirement: !ruby/object:Gem::Requirement
50
65
  none: false
51
66
  requirements:
52
67
  - - ! '>='
@@ -54,7 +69,12 @@ dependencies:
54
69
  version: '0'
55
70
  type: :development
56
71
  prerelease: false
57
- version_requirements: *70196908354240
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
58
78
  description: This gem provides Handlebars magic for your Rails 3 application.
59
79
  email:
60
80
  - tyson@stovepipestudios.com
@@ -96,7 +116,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
96
116
  version: 1.3.6
97
117
  requirements: []
98
118
  rubyforge_project: templebars
99
- rubygems_version: 1.8.11
119
+ rubygems_version: 1.8.23
100
120
  signing_key:
101
121
  specification_version: 3
102
122
  summary: Use precompiled Handlebars templates with Rails 3