Skip to content

Commit 5421df7

Browse files
khaminVFK
authored andcommitted
Special replacement patterns fix (#48)
* Special replacement patterns fix Specifying a function as a parameter do not apply special replacement patterns: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/String/replace#Specifying_a_string_as_a_parameter Signed-off-by: Vitaliy Khamin <[email protected]> * Stream special replacement pattern test Signed-off-by: Vitaliy Khamin <[email protected]>
1 parent 8591aa4 commit 5421df7

File tree

5 files changed

+14
-1
lines changed

5 files changed

+14
-1
lines changed

Diff for: lib/parser.js

+3-1
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,9 @@ Parser.prototype._transform = function (chunk, enc, done) {
3232
var matches = common.regexMatchAll(content, regex);
3333
matches.forEach(function (match) {
3434
var block = new Block(this.config, this.file, match);
35-
content = content.replace(block.replacement, block.compile(this.tasks));
35+
content = content.replace(block.replacement, function () {
36+
return block.compile(this.tasks)
37+
}.bind(this));
3638
}.bind(this));
3739

3840
done(null, content);

Diff for: test/buffer.js

+3
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,9 @@ describe('Buffer mode', function () {
7070
'stream-simple': stringToStream('Stream simple replacement').pipe(source('fake-vinyl.txt')),
7171
'stream-advanced': {
7272
src: stringToStream('Stream advanced replacement').pipe(source('fake-vinyl.txt'))
73+
},
74+
'stream-special': {
75+
src: stringToStream('Stream $$ special replacement pattern').pipe(source('fake-vinyl.txt'))
7376
}
7477
});
7578

Diff for: test/expected.html

+2
Original file line numberDiff line numberDiff line change
@@ -38,5 +38,7 @@
3838
Stream simple replacement
3939

4040
Stream advanced replacement
41+
42+
Stream $$ special replacement pattern
4143
</body>
4244
</html>

Diff for: test/fixture.html

+3
Original file line numberDiff line numberDiff line change
@@ -58,5 +58,8 @@
5858

5959
<!-- build:stream-advanced -->
6060
<!-- endbuild -->
61+
62+
<!-- build:stream-special -->
63+
<!-- endbuild -->
6164
</body>
6265
</html>

Diff for: test/stream.js

+3
Original file line numberDiff line numberDiff line change
@@ -76,6 +76,9 @@ describe('Stream mode', function () {
7676
'stream-simple': stringToStream('Stream simple replacement').pipe(source('fake-vinyl.txt')),
7777
'stream-advanced': {
7878
src: stringToStream('Stream advanced replacement').pipe(source('fake-vinyl.txt'))
79+
},
80+
'stream-special': {
81+
src: stringToStream('Stream $$ special replacement pattern').pipe(source('fake-vinyl.txt'))
7982
}
8083
});
8184

0 commit comments

Comments
 (0)