hogan_assets 1.5.1 → 1.6.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.
- checksums.yaml +15 -0
- data/.gitignore +1 -0
- data/CHANGELOG.md +4 -0
- data/Gemfile.lock +3 -3
- data/README.md +1 -1
- data/lib/hogan_assets/version.rb +1 -1
- data/test/hogan_assets/tilt_test.rb +15 -10
- data/test/test_helper.rb +9 -0
- data/vendor/assets/javascripts/hogan.js +67 -35
- metadata +24 -37
checksums.yaml
ADDED
@@ -0,0 +1,15 @@
|
|
1
|
+
---
|
2
|
+
!binary "U0hBMQ==":
|
3
|
+
metadata.gz: !binary |-
|
4
|
+
ZTEyZTQxNDZlYWQ1MzA5NzAzZTZmZTAxOGMwZmI3M2VhZTU5MDBlZA==
|
5
|
+
data.tar.gz: !binary |-
|
6
|
+
M2UzMmZiMGU1YTRhNzU4ZDNkNzAzMWI1NDYwMzRjYmFiMWZlZjNlZA==
|
7
|
+
!binary "U0hBNTEy":
|
8
|
+
metadata.gz: !binary |-
|
9
|
+
M2FiNzhkM2U3MzcxODI5ZTI1YWYxMjM1YjAwODZhMDJjMjhmOGNmMzNkNzc3
|
10
|
+
Y2VjZmViN2U4OTM3MDU5NmUyNTAyMTVhNzU2NWExMGQxMTdiYzAyMTk4OWVl
|
11
|
+
YjlkZTY5OGY4NzRkMDdkZGQ2OGFjOTljYjg3MzQ3OTY5ZjFiOGY=
|
12
|
+
data.tar.gz: !binary |-
|
13
|
+
NDA1ODgyYjBkMDQ2MjRmMWRkOGEyM2FlMmJiMDM0MGIxOGJjMTI1MjdjMWQ5
|
14
|
+
OTE3OGY4YzdlNjE1NGZjZDFlNzdjN2VhYzVlZjhmZTBkYjIzZmYzYzg1ZWU5
|
15
|
+
NTQwYmRjZmM3ZmZhYWJlODY5YmZlMTZmYzhmNzk0NGZmOTUwMDc=
|
data/.gitignore
CHANGED
data/CHANGELOG.md
CHANGED
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
hogan_assets (1.
|
4
|
+
hogan_assets (1.6.0)
|
5
5
|
execjs (>= 1.2.9)
|
6
6
|
sprockets (>= 2.0.3)
|
7
7
|
tilt (>= 1.3.3)
|
@@ -21,8 +21,8 @@ GEM
|
|
21
21
|
multi_json (~> 1.0)
|
22
22
|
haml (3.1.6)
|
23
23
|
hike (1.2.1)
|
24
|
-
multi_json (1.
|
25
|
-
rack (1.
|
24
|
+
multi_json (1.7.1)
|
25
|
+
rack (1.5.2)
|
26
26
|
slim (1.3.4)
|
27
27
|
temple (~> 0.5.5)
|
28
28
|
tilt (~> 1.3.3)
|
data/README.md
CHANGED
@@ -4,7 +4,7 @@
|
|
4
4
|
|
5
5
|
**hogan.js** is a templating engine developed at [Twitter](http://twitter.com) that follows the **mustache** spec and compiles the templates to JavaScript. The first bit is *cool*, since **mustache** is *cool*. The second bit is **awesome and full of win** because we can now compile our **mustache** templates on the server using the asset pipeline/sprockets.
|
6
6
|
|
7
|
-
This gem contains **hogan.js
|
7
|
+
This gem contains **hogan.js 3.0.0** as of this [commit](https://github.com/twitter/hogan.js/commit/9a9eb1ab8fbbfedc9de73aeac4f9c1798d190a21)
|
8
8
|
|
9
9
|
## Installation
|
10
10
|
|
data/lib/hogan_assets/version.rb
CHANGED
@@ -15,22 +15,24 @@ module HoganAssets
|
|
15
15
|
def test_render
|
16
16
|
scope = make_scope '/myapp/app/assets/javascripts', 'path/to/template.mustache'
|
17
17
|
|
18
|
-
|
18
|
+
source = "This is {{mustache}}"
|
19
|
+
template = HoganAssets::Tilt.new(scope.s_path) { source }
|
19
20
|
|
20
21
|
assert_equal <<-END_EXPECTED, template.render(scope, {})
|
21
22
|
this.HoganTemplates || (this.HoganTemplates = {});
|
22
|
-
this.HoganTemplates[
|
23
|
+
this.HoganTemplates["path/to/template"] = new Hogan.Template(#{compiled_template source}, "", Hogan, {});
|
23
24
|
END_EXPECTED
|
24
25
|
end
|
25
26
|
|
26
27
|
def test_hamstache_render
|
27
28
|
scope = make_scope '/myapp/app/assets/javascripts', 'path/to/template.hamstache'
|
28
29
|
|
29
|
-
|
30
|
+
source = "%p This is {{mustache}}"
|
31
|
+
template = HoganAssets::Tilt.new(scope.s_path) { source }
|
30
32
|
|
31
33
|
assert_equal <<-END_EXPECTED, template.render(scope, {})
|
32
34
|
this.HoganTemplates || (this.HoganTemplates = {});
|
33
|
-
this.HoganTemplates[
|
35
|
+
this.HoganTemplates["path/to/template"] = new Hogan.Template(#{compiled_template haml_compiled scope, source}, "", Hogan, {});
|
34
36
|
END_EXPECTED
|
35
37
|
end
|
36
38
|
|
@@ -41,11 +43,12 @@ module HoganAssets
|
|
41
43
|
|
42
44
|
scope = make_scope '/myapp/app/assets/javascripts', 'path/to/template.mustache'
|
43
45
|
|
44
|
-
|
46
|
+
source = "This is {{mustache}}"
|
47
|
+
template = HoganAssets::Tilt.new(scope.s_path) { source }
|
45
48
|
|
46
49
|
assert_equal <<-END_EXPECTED, template.render(scope, {})
|
47
50
|
this.HoganTemplates || (this.HoganTemplates = {});
|
48
|
-
this.HoganTemplates[
|
51
|
+
this.HoganTemplates["path/to/template"] = new Hogan.Template(#{compiled_template source}, "This is {{mustache}}", Hogan, {});
|
49
52
|
END_EXPECTED
|
50
53
|
end
|
51
54
|
|
@@ -56,11 +59,12 @@ module HoganAssets
|
|
56
59
|
|
57
60
|
scope = make_scope '/myapp/app/assets/javascripts', 'app/templates/template.mustache'
|
58
61
|
|
59
|
-
|
62
|
+
source = "This is {{mustache}}"
|
63
|
+
template = HoganAssets::Tilt.new(scope.s_path) { source }
|
60
64
|
|
61
65
|
assert_equal <<-END_EXPECTED, template.render(scope, {})
|
62
66
|
this.HoganTemplates || (this.HoganTemplates = {});
|
63
|
-
this.HoganTemplates[
|
67
|
+
this.HoganTemplates["template"] = new Hogan.Template(#{compiled_template source}, "", Hogan, {});
|
64
68
|
END_EXPECTED
|
65
69
|
end
|
66
70
|
|
@@ -71,11 +75,12 @@ module HoganAssets
|
|
71
75
|
|
72
76
|
scope = make_scope '/myapp/app/assets/javascripts', 'path/to/template.mustache'
|
73
77
|
|
74
|
-
|
78
|
+
source = "This is {{mustache}}"
|
79
|
+
template = HoganAssets::Tilt.new(scope.s_path) { source }
|
75
80
|
|
76
81
|
assert_equal <<-END_EXPECTED, template.render(scope, {})
|
77
82
|
this.JST || (this.JST = {});
|
78
|
-
this.JST[
|
83
|
+
this.JST["path/to/template"] = new Hogan.Template(#{compiled_template source}, "", Hogan, {});
|
79
84
|
END_EXPECTED
|
80
85
|
end
|
81
86
|
|
data/test/test_helper.rb
CHANGED
@@ -11,7 +11,16 @@ module HoganAssets::Config
|
|
11
11
|
|
12
12
|
end
|
13
13
|
end
|
14
|
+
|
14
15
|
module TestSupport
|
16
|
+
def compiled_template(text)
|
17
|
+
HoganAssets::Hogan.compile(text)
|
18
|
+
end
|
19
|
+
|
20
|
+
def haml_compiled(scope, text)
|
21
|
+
Haml::Engine.new(text, HoganAssets::Config.haml_options.merge(@options)).render(scope, {})
|
22
|
+
end
|
23
|
+
|
15
24
|
# Try to act like sprockets.
|
16
25
|
def make_scope(root, file)
|
17
26
|
Class.new do
|
@@ -1,4 +1,4 @@
|
|
1
|
-
|
1
|
+
/*!
|
2
2
|
* Copyright 2011 Twitter, Inc.
|
3
3
|
* Licensed under the Apache License, Version 2.0 (the "License");
|
4
4
|
* you may not use this file except in compliance with the License.
|
@@ -22,7 +22,7 @@ var Hogan = {};
|
|
22
22
|
codeObj = codeObj || {};
|
23
23
|
this.r = codeObj.code || this.r;
|
24
24
|
this.c = compiler;
|
25
|
-
this.options = options;
|
25
|
+
this.options = options || {};
|
26
26
|
this.text = text || '';
|
27
27
|
this.partials = codeObj.partials || {};
|
28
28
|
this.subs = codeObj.subs || {};
|
@@ -73,14 +73,18 @@ var Hogan = {};
|
|
73
73
|
this.partials[symbol].base = template;
|
74
74
|
|
75
75
|
if (partial.subs) {
|
76
|
-
|
77
|
-
|
78
|
-
|
76
|
+
// Make sure we consider parent template now
|
77
|
+
if (this.activeSub === undefined) {
|
78
|
+
// Store parent template text in partials.stackText to perform substitutions in child templates correctly
|
79
|
+
partials.stackText = this.text;
|
80
|
+
}
|
81
|
+
template = createSpecializedPartial(template, partial.subs, partial.partials, partials.stackText || this.text);
|
82
|
+
}
|
79
83
|
this.partials[symbol].instance = template;
|
80
84
|
return template;
|
81
85
|
},
|
82
86
|
|
83
|
-
// tries to find a partial in the
|
87
|
+
// tries to find a partial in the current scope and render it
|
84
88
|
rp: function(symbol, context, partials, indent) {
|
85
89
|
var partial = this.ep(symbol, partials);
|
86
90
|
if (!partial) {
|
@@ -118,7 +122,7 @@ var Hogan = {};
|
|
118
122
|
val = this.ms(val, ctx, partials, inverted, start, end, tags);
|
119
123
|
}
|
120
124
|
|
121
|
-
pass =
|
125
|
+
pass = !!val;
|
122
126
|
|
123
127
|
if (!inverted && pass && ctx) {
|
124
128
|
ctx.push((typeof val == 'object') ? val : ctx[ctx.length - 1]);
|
@@ -129,20 +133,23 @@ var Hogan = {};
|
|
129
133
|
|
130
134
|
// find values with dotted names
|
131
135
|
d: function(key, ctx, partials, returnFound) {
|
132
|
-
var
|
136
|
+
var found,
|
137
|
+
names = key.split('.'),
|
133
138
|
val = this.f(names[0], ctx, partials, returnFound),
|
139
|
+
doModelGet = this.options.modelGet,
|
134
140
|
cx = null;
|
135
141
|
|
136
142
|
if (key === '.' && isArray(ctx[ctx.length - 2])) {
|
137
|
-
|
138
|
-
}
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
|
144
|
-
|
145
|
-
|
143
|
+
val = ctx[ctx.length - 1];
|
144
|
+
} else {
|
145
|
+
for (var i = 1; i < names.length; i++) {
|
146
|
+
found = findInScope(names[i], val, doModelGet);
|
147
|
+
if (found != null) {
|
148
|
+
cx = val;
|
149
|
+
val = found;
|
150
|
+
} else {
|
151
|
+
val = '';
|
152
|
+
}
|
146
153
|
}
|
147
154
|
}
|
148
155
|
|
@@ -163,12 +170,13 @@ var Hogan = {};
|
|
163
170
|
f: function(key, ctx, partials, returnFound) {
|
164
171
|
var val = false,
|
165
172
|
v = null,
|
166
|
-
found = false
|
173
|
+
found = false,
|
174
|
+
doModelGet = this.options.modelGet;
|
167
175
|
|
168
176
|
for (var i = ctx.length - 1; i >= 0; i--) {
|
169
177
|
v = ctx[i];
|
170
|
-
|
171
|
-
|
178
|
+
val = findInScope(key, v, doModelGet);
|
179
|
+
if (val != null) {
|
172
180
|
found = true;
|
173
181
|
break;
|
174
182
|
}
|
@@ -217,14 +225,16 @@ var Hogan = {};
|
|
217
225
|
|
218
226
|
// method replace section
|
219
227
|
ms: function(func, ctx, partials, inverted, start, end, tags) {
|
220
|
-
var
|
228
|
+
var textSource,
|
229
|
+
cx = ctx[ctx.length - 1],
|
221
230
|
result = func.call(cx);
|
222
231
|
|
223
232
|
if (typeof result == 'function') {
|
224
233
|
if (inverted) {
|
225
234
|
return true;
|
226
235
|
} else {
|
227
|
-
|
236
|
+
textSource = (this.activeSub && this.subsText[this.activeSub]) ? this.subsText[this.activeSub] : this.text;
|
237
|
+
return this.ls(result, cx, partials, textSource.substring(start, end), tags);
|
228
238
|
}
|
229
239
|
}
|
230
240
|
|
@@ -246,13 +256,33 @@ var Hogan = {};
|
|
246
256
|
sub: function(name, context, partials, indent) {
|
247
257
|
var f = this.subs[name];
|
248
258
|
if (f) {
|
259
|
+
this.activeSub = name;
|
249
260
|
f(context, partials, this, indent);
|
261
|
+
this.activeSub = false;
|
250
262
|
}
|
251
263
|
}
|
252
264
|
|
253
265
|
};
|
254
266
|
|
255
|
-
|
267
|
+
//Find a key in an object
|
268
|
+
function findInScope(key, scope, doModelGet) {
|
269
|
+
var val, checkVal;
|
270
|
+
|
271
|
+
if (scope && typeof scope == 'object') {
|
272
|
+
|
273
|
+
if (scope[key] != null) {
|
274
|
+
val = scope[key];
|
275
|
+
|
276
|
+
// try lookup with get for backbone or similar model data
|
277
|
+
} else if (doModelGet && scope.get && typeof scope.get == 'function') {
|
278
|
+
val = scope.get(key);
|
279
|
+
}
|
280
|
+
}
|
281
|
+
|
282
|
+
return val;
|
283
|
+
}
|
284
|
+
|
285
|
+
function createSpecializedPartial(instance, subs, partials, childText) {
|
256
286
|
function PartialTemplate() {};
|
257
287
|
PartialTemplate.prototype = instance;
|
258
288
|
function Substitutions() {};
|
@@ -260,10 +290,12 @@ var Hogan = {};
|
|
260
290
|
var key;
|
261
291
|
var partial = new PartialTemplate();
|
262
292
|
partial.subs = new Substitutions();
|
293
|
+
partial.subsText = {}; //hehe. substext.
|
263
294
|
partial.ib();
|
264
295
|
|
265
296
|
for (key in subs) {
|
266
297
|
partial.subs[key] = subs[key];
|
298
|
+
partial.subsText[key] = childText;
|
267
299
|
}
|
268
300
|
|
269
301
|
for (key in partials) {
|
@@ -276,9 +308,9 @@ var Hogan = {};
|
|
276
308
|
var rAmp = /&/g,
|
277
309
|
rLt = /</g,
|
278
310
|
rGt = />/g,
|
279
|
-
rApos
|
311
|
+
rApos = /\'/g,
|
280
312
|
rQuot = /\"/g,
|
281
|
-
hChars
|
313
|
+
hChars = /[&<>\"\']/;
|
282
314
|
|
283
315
|
function coerceToString(val) {
|
284
316
|
return String((val === null || val === undefined) ? '' : val);
|
@@ -288,10 +320,10 @@ var Hogan = {};
|
|
288
320
|
str = coerceToString(str);
|
289
321
|
return hChars.test(str) ?
|
290
322
|
str
|
291
|
-
.replace(rAmp,'&')
|
292
|
-
.replace(rLt,'<')
|
293
|
-
.replace(rGt,'>')
|
294
|
-
.replace(rApos,''')
|
323
|
+
.replace(rAmp, '&')
|
324
|
+
.replace(rLt, '<')
|
325
|
+
.replace(rGt, '>')
|
326
|
+
.replace(rApos, ''')
|
295
327
|
.replace(rQuot, '"') :
|
296
328
|
str;
|
297
329
|
}
|
@@ -385,7 +417,7 @@ var Hogan = {};
|
|
385
417
|
).split(' ');
|
386
418
|
|
387
419
|
otag = delimiters[0];
|
388
|
-
ctag = delimiters[1];
|
420
|
+
ctag = delimiters[delimiters.length - 1];
|
389
421
|
|
390
422
|
return closeIndex + close.length - 1;
|
391
423
|
}
|
@@ -671,7 +703,7 @@ var Hogan = {};
|
|
671
703
|
return 't.b(' + s + ');';
|
672
704
|
}
|
673
705
|
|
674
|
-
Hogan.walk = function
|
706
|
+
Hogan.walk = function(nodelist, context) {
|
675
707
|
var func;
|
676
708
|
for (var i = 0, l = nodelist.length; i < l; i++) {
|
677
709
|
func = Hogan.codegen[nodelist[i].tag];
|
@@ -683,13 +715,13 @@ var Hogan = {};
|
|
683
715
|
Hogan.parse = function(tokens, text, options) {
|
684
716
|
options = options || {};
|
685
717
|
return buildTree(tokens, '', [], options.sectionTags || []);
|
686
|
-
}
|
718
|
+
}
|
687
719
|
|
688
720
|
Hogan.cache = {};
|
689
721
|
|
690
722
|
Hogan.cacheKey = function(text, options) {
|
691
|
-
return [text, !!options.asString, !!options.disableLambda].join('||');
|
692
|
-
}
|
723
|
+
return [text, !!options.asString, !!options.disableLambda, options.delimiters, !!options.modelGet].join('||');
|
724
|
+
}
|
693
725
|
|
694
726
|
Hogan.compile = function(text, options) {
|
695
727
|
options = options || {};
|
@@ -702,6 +734,6 @@ var Hogan = {};
|
|
702
734
|
|
703
735
|
template = this.generate(this.parse(this.scan(text, options.delimiters), text, options), text, options);
|
704
736
|
return this.cache[key] = template;
|
705
|
-
}
|
737
|
+
}
|
706
738
|
})(typeof exports !== 'undefined' ? exports : Hogan);
|
707
739
|
|
metadata
CHANGED
@@ -1,112 +1,99 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: hogan_assets
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
version: 1.5.1
|
4
|
+
version: 1.6.0
|
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-
|
11
|
+
date: 2013-03-27 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: 1.
|
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: 1.3.3
|
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:
|
40
|
+
version: 1.3.3
|
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:
|
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: slim
|
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: slim
|
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
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
110
97
|
description: Use compiled hogan.js (mustache) JavaScript templates with sprockets
|
111
98
|
and the Rails asset pipeline.
|
112
99
|
email:
|
@@ -137,27 +124,26 @@ files:
|
|
137
124
|
- vendor/assets/javascripts/hogan.js
|
138
125
|
homepage: https://github.com/leshill/hogan_assets
|
139
126
|
licenses: []
|
127
|
+
metadata: {}
|
140
128
|
post_install_message:
|
141
129
|
rdoc_options: []
|
142
130
|
require_paths:
|
143
131
|
- lib
|
144
132
|
required_ruby_version: !ruby/object:Gem::Requirement
|
145
|
-
none: false
|
146
133
|
requirements:
|
147
134
|
- - ! '>='
|
148
135
|
- !ruby/object:Gem::Version
|
149
136
|
version: '0'
|
150
137
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
151
|
-
none: false
|
152
138
|
requirements:
|
153
139
|
- - ! '>='
|
154
140
|
- !ruby/object:Gem::Version
|
155
141
|
version: '0'
|
156
142
|
requirements: []
|
157
143
|
rubyforge_project:
|
158
|
-
rubygems_version:
|
144
|
+
rubygems_version: 2.0.3
|
159
145
|
signing_key:
|
160
|
-
specification_version:
|
146
|
+
specification_version: 4
|
161
147
|
summary: Use compiled hogan.js (mustache) JavaScript templates with sprockets and
|
162
148
|
the Rails asset pipeline.
|
163
149
|
test_files:
|
@@ -165,3 +151,4 @@ test_files:
|
|
165
151
|
- test/hogan_assets/config_test.rb
|
166
152
|
- test/hogan_assets/tilt_test.rb
|
167
153
|
- test/test_helper.rb
|
154
|
+
has_rdoc:
|