mustache-js-rails 4.0.1 → 4.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +1 -1
- data/lib/mustache-js-rails/version.rb +1 -1
- data/vendor/assets/javascripts/mustache.js +59 -26
- metadata +7 -7
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: bdaacb9d86224bfaad91faadf214d54fba2aff3061782daa0f94db8699337a00
|
4
|
+
data.tar.gz: 43565772ac94156221a0ba5b35bd2f3993e667db3e8502ee78b0b370e7ef8b23
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff21d26afa01b0542780f8ce26dc0e796c165e797e57a659ede1d1ff20b38b1456bbb297b5208938076680101880dccdf3a0b776772405586d34ef0ede087d5c
|
7
|
+
data.tar.gz: 204506a54896719b4a81cf4baaeefe3422523b766c31dcd1c34f4d7d2d43158f9897061b558c8d5d72a1c704b231bd6035c7730c9961c84e49ad3d1f10acc3f3
|
data/README.md
CHANGED
@@ -9,7 +9,7 @@ and [mustache jQuery integration](https://github.com/jonnyreeves/jquery-Mustache
|
|
9
9
|
|
10
10
|
Integrated versions are:
|
11
11
|
|
12
|
-
* mustache.js - <b id="mustache-js-version">4.0
|
12
|
+
* mustache.js - <b id="mustache-js-version">4.1.0</b>
|
13
13
|
* jQuery mustache - <b id="jquery-mustache-js-version">0.2.8</b>
|
14
14
|
|
15
15
|
### Installation
|
@@ -536,14 +536,25 @@
|
|
536
536
|
* also be a function that is used to load partial templates on the fly
|
537
537
|
* that takes a single argument: the name of the partial.
|
538
538
|
*
|
539
|
-
* If the optional `
|
539
|
+
* If the optional `config` argument is given here, then it should be an
|
540
|
+
* object with a `tags` attribute or an `escape` attribute or both.
|
541
|
+
* If an array is passed, then it will be interpreted the same way as
|
542
|
+
* a `tags` attribute on a `config` object.
|
543
|
+
*
|
544
|
+
* The `tags` attribute of a `config` object must be an array with two
|
540
545
|
* string values: the opening and closing tags used in the template (e.g.
|
541
546
|
* [ "<%", "%>" ]). The default is to mustache.tags.
|
547
|
+
*
|
548
|
+
* The `escape` attribute of a `config` object must be a function which
|
549
|
+
* accepts a string as input and outputs a safely escaped string.
|
550
|
+
* If an `escape` function is not provided, then an HTML-safe string
|
551
|
+
* escaping function is used as the default.
|
542
552
|
*/
|
543
|
-
Writer.prototype.render = function render (template, view, partials,
|
553
|
+
Writer.prototype.render = function render (template, view, partials, config) {
|
554
|
+
var tags = this.getConfigTags(config);
|
544
555
|
var tokens = this.parse(template, tags);
|
545
556
|
var context = (view instanceof Context) ? view : new Context(view, undefined);
|
546
|
-
return this.renderTokens(tokens, context, partials, template,
|
557
|
+
return this.renderTokens(tokens, context, partials, template, config);
|
547
558
|
};
|
548
559
|
|
549
560
|
/**
|
@@ -555,7 +566,7 @@
|
|
555
566
|
* If the template doesn't use higher-order sections, this argument may
|
556
567
|
* be omitted.
|
557
568
|
*/
|
558
|
-
Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate,
|
569
|
+
Writer.prototype.renderTokens = function renderTokens (tokens, context, partials, originalTemplate, config) {
|
559
570
|
var buffer = '';
|
560
571
|
|
561
572
|
var token, symbol, value;
|
@@ -564,11 +575,11 @@
|
|
564
575
|
token = tokens[i];
|
565
576
|
symbol = token[0];
|
566
577
|
|
567
|
-
if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate);
|
568
|
-
else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate);
|
569
|
-
else if (symbol === '>') value = this.renderPartial(token, context, partials,
|
578
|
+
if (symbol === '#') value = this.renderSection(token, context, partials, originalTemplate, config);
|
579
|
+
else if (symbol === '^') value = this.renderInverted(token, context, partials, originalTemplate, config);
|
580
|
+
else if (symbol === '>') value = this.renderPartial(token, context, partials, config);
|
570
581
|
else if (symbol === '&') value = this.unescapedValue(token, context);
|
571
|
-
else if (symbol === 'name') value = this.escapedValue(token, context);
|
582
|
+
else if (symbol === 'name') value = this.escapedValue(token, context, config);
|
572
583
|
else if (symbol === 'text') value = this.rawValue(token);
|
573
584
|
|
574
585
|
if (value !== undefined)
|
@@ -578,7 +589,7 @@
|
|
578
589
|
return buffer;
|
579
590
|
};
|
580
591
|
|
581
|
-
Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate) {
|
592
|
+
Writer.prototype.renderSection = function renderSection (token, context, partials, originalTemplate, config) {
|
582
593
|
var self = this;
|
583
594
|
var buffer = '';
|
584
595
|
var value = context.lookup(token[1]);
|
@@ -586,17 +597,17 @@
|
|
586
597
|
// This function is used to render an arbitrary template
|
587
598
|
// in the current context by higher-order sections.
|
588
599
|
function subRender (template) {
|
589
|
-
return self.render(template, context, partials);
|
600
|
+
return self.render(template, context, partials, config);
|
590
601
|
}
|
591
602
|
|
592
603
|
if (!value) return;
|
593
604
|
|
594
605
|
if (isArray(value)) {
|
595
606
|
for (var j = 0, valueLength = value.length; j < valueLength; ++j) {
|
596
|
-
buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate);
|
607
|
+
buffer += this.renderTokens(token[4], context.push(value[j]), partials, originalTemplate, config);
|
597
608
|
}
|
598
609
|
} else if (typeof value === 'object' || typeof value === 'string' || typeof value === 'number') {
|
599
|
-
buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate);
|
610
|
+
buffer += this.renderTokens(token[4], context.push(value), partials, originalTemplate, config);
|
600
611
|
} else if (isFunction(value)) {
|
601
612
|
if (typeof originalTemplate !== 'string')
|
602
613
|
throw new Error('Cannot use higher-order sections without the original template');
|
@@ -607,18 +618,18 @@
|
|
607
618
|
if (value != null)
|
608
619
|
buffer += value;
|
609
620
|
} else {
|
610
|
-
buffer += this.renderTokens(token[4], context, partials, originalTemplate);
|
621
|
+
buffer += this.renderTokens(token[4], context, partials, originalTemplate, config);
|
611
622
|
}
|
612
623
|
return buffer;
|
613
624
|
};
|
614
625
|
|
615
|
-
Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate) {
|
626
|
+
Writer.prototype.renderInverted = function renderInverted (token, context, partials, originalTemplate, config) {
|
616
627
|
var value = context.lookup(token[1]);
|
617
628
|
|
618
629
|
// Use JavaScript's definition of falsy. Include empty arrays.
|
619
630
|
// See https://github.com/janl/mustache.js/issues/186
|
620
631
|
if (!value || (isArray(value) && value.length === 0))
|
621
|
-
return this.renderTokens(token[4], context, partials, originalTemplate);
|
632
|
+
return this.renderTokens(token[4], context, partials, originalTemplate, config);
|
622
633
|
};
|
623
634
|
|
624
635
|
Writer.prototype.indentPartial = function indentPartial (partial, indentation, lineHasNonSpace) {
|
@@ -632,8 +643,9 @@
|
|
632
643
|
return partialByNl.join('\n');
|
633
644
|
};
|
634
645
|
|
635
|
-
Writer.prototype.renderPartial = function renderPartial (token, context, partials,
|
646
|
+
Writer.prototype.renderPartial = function renderPartial (token, context, partials, config) {
|
636
647
|
if (!partials) return;
|
648
|
+
var tags = this.getConfigTags(config);
|
637
649
|
|
638
650
|
var value = isFunction(partials) ? partials(token[1]) : partials[token[1]];
|
639
651
|
if (value != null) {
|
@@ -644,7 +656,8 @@
|
|
644
656
|
if (tagIndex == 0 && indentation) {
|
645
657
|
indentedValue = this.indentPartial(value, indentation, lineHasNonSpace);
|
646
658
|
}
|
647
|
-
|
659
|
+
var tokens = this.parse(indentedValue, tags);
|
660
|
+
return this.renderTokens(tokens, context, partials, indentedValue, config);
|
648
661
|
}
|
649
662
|
};
|
650
663
|
|
@@ -654,19 +667,41 @@
|
|
654
667
|
return value;
|
655
668
|
};
|
656
669
|
|
657
|
-
Writer.prototype.escapedValue = function escapedValue (token, context) {
|
670
|
+
Writer.prototype.escapedValue = function escapedValue (token, context, config) {
|
671
|
+
var escape = this.getConfigEscape(config) || mustache.escape;
|
658
672
|
var value = context.lookup(token[1]);
|
659
673
|
if (value != null)
|
660
|
-
return mustache.escape(value);
|
674
|
+
return (typeof value === 'number' && escape === mustache.escape) ? String(value) : escape(value);
|
661
675
|
};
|
662
676
|
|
663
677
|
Writer.prototype.rawValue = function rawValue (token) {
|
664
678
|
return token[1];
|
665
679
|
};
|
666
680
|
|
681
|
+
Writer.prototype.getConfigTags = function getConfigTags (config) {
|
682
|
+
if (isArray(config)) {
|
683
|
+
return config;
|
684
|
+
}
|
685
|
+
else if (config && typeof config === 'object') {
|
686
|
+
return config.tags;
|
687
|
+
}
|
688
|
+
else {
|
689
|
+
return undefined;
|
690
|
+
}
|
691
|
+
};
|
692
|
+
|
693
|
+
Writer.prototype.getConfigEscape = function getConfigEscape (config) {
|
694
|
+
if (config && typeof config === 'object' && !isArray(config)) {
|
695
|
+
return config.escape;
|
696
|
+
}
|
697
|
+
else {
|
698
|
+
return undefined;
|
699
|
+
}
|
700
|
+
};
|
701
|
+
|
667
702
|
var mustache = {
|
668
703
|
name: 'mustache.js',
|
669
|
-
version: '4.0
|
704
|
+
version: '4.1.0',
|
670
705
|
tags: [ '{{', '}}' ],
|
671
706
|
clearCache: undefined,
|
672
707
|
escape: undefined,
|
@@ -711,19 +746,17 @@
|
|
711
746
|
};
|
712
747
|
|
713
748
|
/**
|
714
|
-
* Renders the `template` with the given `view` and `
|
715
|
-
* default writer.
|
716
|
-
* array with two string values: the opening and closing tags used in the
|
717
|
-
* template (e.g. [ "<%", "%>" ]). The default is to mustache.tags.
|
749
|
+
* Renders the `template` with the given `view`, `partials`, and `config`
|
750
|
+
* using the default writer.
|
718
751
|
*/
|
719
|
-
mustache.render = function render (template, view, partials,
|
752
|
+
mustache.render = function render (template, view, partials, config) {
|
720
753
|
if (typeof template !== 'string') {
|
721
754
|
throw new TypeError('Invalid template! Template should be a "string" ' +
|
722
755
|
'but "' + typeStr(template) + '" was given as the first ' +
|
723
756
|
'argument for mustache#render(template, view, partials)');
|
724
757
|
}
|
725
758
|
|
726
|
-
return defaultWriter.render(template, view, partials,
|
759
|
+
return defaultWriter.render(template, view, partials, config);
|
727
760
|
};
|
728
761
|
|
729
762
|
// Export the escaping function so that the user may override it.
|
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: 4.0
|
4
|
+
version: 4.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Krzysztof Knapik
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: railties
|
@@ -38,7 +38,7 @@ dependencies:
|
|
38
38
|
- - ">="
|
39
39
|
- !ruby/object:Gem::Version
|
40
40
|
version: '0'
|
41
|
-
description:
|
41
|
+
description:
|
42
42
|
email:
|
43
43
|
- knapo@knapo.net
|
44
44
|
executables: []
|
@@ -59,7 +59,7 @@ licenses:
|
|
59
59
|
metadata:
|
60
60
|
homepage_uri: https://github.com/knapo/mustache-js-rails
|
61
61
|
source_code_uri: https://github.com/knapo/mustache-js-rails
|
62
|
-
post_install_message:
|
62
|
+
post_install_message:
|
63
63
|
rdoc_options: []
|
64
64
|
require_paths:
|
65
65
|
- lib
|
@@ -74,8 +74,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
74
74
|
- !ruby/object:Gem::Version
|
75
75
|
version: '0'
|
76
76
|
requirements: []
|
77
|
-
rubygems_version: 3.
|
78
|
-
signing_key:
|
77
|
+
rubygems_version: 3.2.9
|
78
|
+
signing_key:
|
79
79
|
specification_version: 4
|
80
80
|
summary: mustache.js and jQuery.mustache.js integration for Rails 3.1+ asset pipeline
|
81
81
|
test_files: []
|