mustache-js-rails 3.0.1 → 3.1.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 +4 -4
- data/{MIT-LICENSE → LICENSE} +0 -0
- data/README.md +1 -1
- data/lib/mustache-js-rails/version.rb +1 -1
- data/vendor/assets/javascripts/mustache.js +47 -8
- metadata +23 -17
- data/Rakefile +0 -32
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 8e571a562cb620ea6b136e61db57909e64d8d720934d8eb6aa4a2138955b74e3
|
4
|
+
data.tar.gz: 70bcc946012dea4a264c343797f9ce6b7c30052ba7670ed3f0dd3903575a945f
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 0a4c07e01ba65011acfa8ff2cd366da459a97250212abe4a9f721b57f6ce0d8c5931944e541af7a285c9067076f0fc4e52093a4b286118ca28bfbb7fe0f93b13
|
7
|
+
data.tar.gz: 21d41e2e0bfa9869f1b746a8a50f32a0e49f1cfed987787b2667385bc1e9a66c8eaf190f04c761e7efa9877c942174ae7514eda7d16f1035a4760115172012f6
|
data/{MIT-LICENSE → LICENSE}
RENAMED
File without changes
|
data/README.md
CHANGED
@@ -5,7 +5,7 @@ and [mustache jQuery integration](https://github.com/jonnyreeves/jquery-Mustache
|
|
5
5
|
|
6
6
|
Integrated versions are:
|
7
7
|
|
8
|
-
* mustache.js - <b id="mustache-js-version">3.0
|
8
|
+
* mustache.js - <b id="mustache-js-version">3.1.0</b>
|
9
9
|
* jQuery mustache - <b id="jquery-mustache-js-version">0.2.8</b>
|
10
10
|
|
11
11
|
### Installation
|
@@ -49,7 +49,7 @@
|
|
49
49
|
* Safe way of detecting whether or not the given thing is a primitive and
|
50
50
|
* whether it has the given property
|
51
51
|
*/
|
52
|
-
function primitiveHasOwnProperty (primitive, propName) {
|
52
|
+
function primitiveHasOwnProperty (primitive, propName) {
|
53
53
|
return (
|
54
54
|
primitive != null
|
55
55
|
&& typeof primitive !== 'object'
|
@@ -114,16 +114,22 @@
|
|
114
114
|
* Tokens that are the root node of a subtree contain two more elements: 1) an
|
115
115
|
* array of tokens in the subtree and 2) the index in the original template at
|
116
116
|
* which the closing tag for that section begins.
|
117
|
+
*
|
118
|
+
* Tokens for partials also contain two more elements: 1) a string value of
|
119
|
+
* indendation prior to that tag and 2) the index of that tag on that line -
|
120
|
+
* eg a value of 2 indicates the partial is the third tag on this line.
|
117
121
|
*/
|
118
122
|
function parseTemplate (template, tags) {
|
119
123
|
if (!template)
|
120
124
|
return [];
|
121
|
-
|
125
|
+
var lineHasNonSpace = false;
|
122
126
|
var sections = []; // Stack to hold section tokens
|
123
127
|
var tokens = []; // Buffer to hold the tokens
|
124
128
|
var spaces = []; // Indices of whitespace tokens on the current line
|
125
129
|
var hasTag = false; // Is there a {{tag}} on the current line?
|
126
130
|
var nonSpace = false; // Is there a non-space char on the current line?
|
131
|
+
var indentation = ''; // Tracks indentation for tags that use it
|
132
|
+
var tagIndex = 0; // Stores a count of number of tags encountered on a line
|
127
133
|
|
128
134
|
// Strips all whitespace tokens array for the current line
|
129
135
|
// if there was a {{#tag}} on it and otherwise only space.
|
@@ -169,16 +175,23 @@
|
|
169
175
|
|
170
176
|
if (isWhitespace(chr)) {
|
171
177
|
spaces.push(tokens.length);
|
178
|
+
indentation += chr;
|
172
179
|
} else {
|
173
180
|
nonSpace = true;
|
181
|
+
lineHasNonSpace = true;
|
182
|
+
indentation += ' ';
|
174
183
|
}
|
175
184
|
|
176
185
|
tokens.push([ 'text', chr, start, start + 1 ]);
|
177
186
|
start += 1;
|
178
187
|
|
179
188
|
// Check for whitespace on the current line.
|
180
|
-
if (chr === '\n')
|
189
|
+
if (chr === '\n') {
|
181
190
|
stripSpace();
|
191
|
+
indentation = '';
|
192
|
+
tagIndex = 0;
|
193
|
+
lineHasNonSpace = false;
|
194
|
+
}
|
182
195
|
}
|
183
196
|
}
|
184
197
|
|
@@ -210,7 +223,12 @@
|
|
210
223
|
if (!scanner.scan(closingTagRe))
|
211
224
|
throw new Error('Unclosed tag at ' + scanner.pos);
|
212
225
|
|
213
|
-
|
226
|
+
if (type == '>') {
|
227
|
+
token = [ type, value, start, scanner.pos, indentation, tagIndex, lineHasNonSpace ];
|
228
|
+
} else {
|
229
|
+
token = [ type, value, start, scanner.pos ];
|
230
|
+
}
|
231
|
+
tagIndex++;
|
214
232
|
tokens.push(token);
|
215
233
|
|
216
234
|
if (type === '#' || type === '^') {
|
@@ -232,6 +250,8 @@
|
|
232
250
|
}
|
233
251
|
}
|
234
252
|
|
253
|
+
stripSpace();
|
254
|
+
|
235
255
|
// Make sure there are no open sections when we're done.
|
236
256
|
openSection = sections.pop();
|
237
257
|
|
@@ -418,7 +438,7 @@
|
|
418
438
|
while (intermediateValue != null && index < names.length) {
|
419
439
|
if (index === names.length - 1)
|
420
440
|
lookupHit = (
|
421
|
-
hasProperty(intermediateValue, names[index])
|
441
|
+
hasProperty(intermediateValue, names[index])
|
422
442
|
|| primitiveHasOwnProperty(intermediateValue, names[index])
|
423
443
|
);
|
424
444
|
|
@@ -592,12 +612,31 @@
|
|
592
612
|
return this.renderTokens(token[4], context, partials, originalTemplate);
|
593
613
|
};
|
594
614
|
|
615
|
+
Writer.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {
|
616
|
+
var filteredIndentation = indentation.replace(/[^ \t]/g, '');
|
617
|
+
var partialByNl = partial.split('\n');
|
618
|
+
for (var i = 0; i < partialByNl.length; i++) {
|
619
|
+
if (partialByNl[i].length && (i > 0 || !lineHasNonSpace)) {
|
620
|
+
partialByNl[i] = filteredIndentation + partialByNl[i];
|
621
|
+
}
|
622
|
+
}
|
623
|
+
return partialByNl.join('\n');
|
624
|
+
};
|
625
|
+
|
595
626
|
Writer.prototype.renderPartial = function renderPartial (token, context, partials, tags) {
|
596
627
|
if (!partials) return;
|
597
628
|
|
598
629
|
var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];
|
599
|
-
if (value != null)
|
600
|
-
|
630
|
+
if (value != null) {
|
631
|
+
var lineHasNonSpace = token[6];
|
632
|
+
var tagIndex = token[5];
|
633
|
+
var indentation = token[4];
|
634
|
+
var indentedValue = value;
|
635
|
+
if (tagIndex == 0 && indentation) {
|
636
|
+
indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);
|
637
|
+
}
|
638
|
+
return this.renderTokens(this.parse(indentedValue, tags), context, partials, indentedValue);
|
639
|
+
}
|
601
640
|
};
|
602
641
|
|
603
642
|
Writer.prototype.unescapedValue = function unescapedValue (token, context) {
|
@@ -617,7 +656,7 @@
|
|
617
656
|
};
|
618
657
|
|
619
658
|
mustache.name = 'mustache.js';
|
620
|
-
mustache.version = '3.0
|
659
|
+
mustache.version = '3.1.0';
|
621
660
|
mustache.tags = [ '{{', '}}' ];
|
622
661
|
|
623
662
|
// All high-level mustache.* functions use this writer.
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: mustache-js-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 3.0
|
4
|
+
version: 3.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krzysztof Knapik
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-11-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -17,9 +17,6 @@ dependencies:
|
|
17
17
|
- - ">="
|
18
18
|
- !ruby/object:Gem::Version
|
19
19
|
version: '3.1'
|
20
|
-
- - "<"
|
21
|
-
- !ruby/object:Gem::Version
|
22
|
-
version: '6'
|
23
20
|
type: :runtime
|
24
21
|
prerelease: false
|
25
22
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -27,12 +24,21 @@ dependencies:
|
|
27
24
|
- - ">="
|
28
25
|
- !ruby/object:Gem::Version
|
29
26
|
version: '3.1'
|
30
|
-
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: rake
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
31
32
|
- !ruby/object:Gem::Version
|
32
|
-
version: '
|
33
|
-
|
34
|
-
|
35
|
-
|
33
|
+
version: '10.5'
|
34
|
+
type: :development
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '10.5'
|
41
|
+
description:
|
36
42
|
email:
|
37
43
|
- knapo@knapo.net
|
38
44
|
executables: []
|
@@ -40,9 +46,8 @@ extensions: []
|
|
40
46
|
extra_rdoc_files: []
|
41
47
|
files:
|
42
48
|
- Gemfile
|
43
|
-
-
|
49
|
+
- LICENSE
|
44
50
|
- README.md
|
45
|
-
- Rakefile
|
46
51
|
- lib/mustache-js-rails.rb
|
47
52
|
- lib/mustache-js-rails/engine.rb
|
48
53
|
- lib/mustache-js-rails/version.rb
|
@@ -51,7 +56,9 @@ files:
|
|
51
56
|
homepage: https://github.com/knapo/mustache-js-rails
|
52
57
|
licenses:
|
53
58
|
- MIT
|
54
|
-
metadata:
|
59
|
+
metadata:
|
60
|
+
homepage_uri: https://github.com/knapo/mustache-js-rails
|
61
|
+
source_code_uri: https://github.com/knapo/mustache-js-rails
|
55
62
|
post_install_message:
|
56
63
|
rdoc_options: []
|
57
64
|
require_paths:
|
@@ -60,16 +67,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
60
67
|
requirements:
|
61
68
|
- - ">="
|
62
69
|
- !ruby/object:Gem::Version
|
63
|
-
version:
|
70
|
+
version: 2.0.0
|
64
71
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
65
72
|
requirements:
|
66
73
|
- - ">="
|
67
74
|
- !ruby/object:Gem::Version
|
68
75
|
version: '0'
|
69
76
|
requirements: []
|
70
|
-
|
71
|
-
rubygems_version: 2.7.7
|
77
|
+
rubygems_version: 3.0.6
|
72
78
|
signing_key:
|
73
79
|
specification_version: 4
|
74
|
-
summary:
|
80
|
+
summary: jQuery Colorbox integration for Rails 3.1+ asset pipeline
|
75
81
|
test_files: []
|
data/Rakefile
DELETED
@@ -1,32 +0,0 @@
|
|
1
|
-
#!/usr/bin/env rake
|
2
|
-
require 'bundler/gem_tasks'
|
3
|
-
|
4
|
-
task :update do
|
5
|
-
Dir['*.gem'].each{ |f| FileUtils.rm(f) }
|
6
|
-
|
7
|
-
js_dir = 'vendor/assets/javascripts'
|
8
|
-
css_dir = 'vendor/assets/stylesheets'
|
9
|
-
img_dir = 'vendor/assets/images'
|
10
|
-
[js_dir, css_dir, img_dir].each do |dir|
|
11
|
-
FileUtils.rm_r(dir)
|
12
|
-
FileUtils.mkdir(dir)
|
13
|
-
FileUtils.touch(File.join(dir, '.gitkeep'))
|
14
|
-
end
|
15
|
-
|
16
|
-
puts 'Updating source files...'
|
17
|
-
`git submodule update --recursive --remote`
|
18
|
-
|
19
|
-
puts 'Copying source js files...'
|
20
|
-
FileUtils.cp('mustache.js/mustache.js', js_dir)
|
21
|
-
FileUtils.cp('jquery.mustache.js/jquery.mustache.js', js_dir)
|
22
|
-
|
23
|
-
puts 'Updating version...'
|
24
|
-
mustache_js_version = File.read('mustache.js/mustache.js.nuspec').match(/<version>([\.\d]+)<\/version>/)[1]
|
25
|
-
jquery_mustache_js_version = File.read('jquery.mustache.js/jquery.mustache.js').match(/jQuery Mustache - v([\.\d]+)/)[1]
|
26
|
-
puts "Current mustache.js version is: #{mustache_js_version}"
|
27
|
-
puts "Current jquery.mustache.js version is: #{jquery_mustache_js_version}"
|
28
|
-
readme = File.read('README.md')
|
29
|
-
readme = readme.gsub(/(?<=<b id="mustache-js-version">)[\d\.]+(?=<\/b>)/, mustache_js_version)
|
30
|
-
readme = readme.gsub(/(?<=<b id="jquery-mustache-js-version">)[\d\.]+(?=<\/b>)/, jquery_mustache_js_version)
|
31
|
-
File.open('README.md','w') { |f| f.write(readme) }
|
32
|
-
end
|