Skip to content

Commit

Permalink
Ruby: Added missing regex interpolation (#2841)
Browse files Browse the repository at this point in the history
  • Loading branch information
RunDevelopment committed Apr 3, 2021
1 parent 4ec7535 commit f08c2f7
Show file tree
Hide file tree
Showing 3 changed files with 103 additions and 32 deletions.
7 changes: 5 additions & 2 deletions components/prism-ruby.js
Expand Up @@ -53,9 +53,12 @@
}
},
{
pattern: /(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[gim]{0,3}(?=\s*(?:$|[\r\n,.;})]))/,
pattern: /(^|[^/])\/(?!\/)(?:\[[^\r\n\]]+\]|\\.|[^[/\\\r\n])+\/[gim]{0,3}(?=\s*(?:$|[\r\n,.;})#]))/,
lookbehind: true,
greedy: true
greedy: true,
inside: {
'interpolation': interpolation
}
}
],
'variable': /[@$]+[a-zA-Z_]\w*(?:[?!]|\b)/,
Expand Down
2 changes: 1 addition & 1 deletion components/prism-ruby.min.js

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

126 changes: 97 additions & 29 deletions tests/languages/ruby/regex_feature.test
@@ -1,45 +1,113 @@
/[foo]\/bar/gim
/[bar]/,
/./i;
/foo#{bar}/;
%r!foo?bar#{39+3}!
%r(foo?bar#{39+3})
%r{foo?bar#{39+3}}
%r[foo?bar#{39+3}]
%r<foo?bar#{39+3}>

/foo/ # comment
/foo#{bar}/ # comment

----------------------------------------------------

[
["regex", "/[foo]\\/bar/gim"],
["regex", "/[bar]/"], ["punctuation", ","],
["regex", "/./i"], ["punctuation", ";"],
["regex", ["%r!foo?bar", ["interpolation", [
["delimiter", "#{"],
["number", "39"], ["operator", "+"], ["number", "3"],
["delimiter", "}"]
]], "!"]],
["regex", ["%r(foo?bar", ["interpolation", [
["delimiter", "#{"],
["number", "39"], ["operator", "+"], ["number", "3"],
["delimiter", "}"]
]], ")"]],
["regex", ["%r{foo?bar", ["interpolation", [
["delimiter", "#{"],
["number", "39"], ["operator", "+"], ["number", "3"],
["delimiter", "}"]
]], "}"]],
["regex", ["%r[foo?bar", ["interpolation", [
["delimiter", "#{"],
["number", "39"], ["operator", "+"], ["number", "3"],
["delimiter", "}"]
]], "]"]],
["regex", ["%r<foo?bar", ["interpolation", [
["delimiter", "#{"],
["number", "39"], ["operator", "+"], ["number", "3"],
["delimiter", "}"]
]], ">"]]
["regex", ["/[foo]\\/bar/gim"]],

["regex", ["/[bar]/"]],
["punctuation", ","],

["regex", ["/./i"]],
["punctuation", ";"],

["regex", [
"/foo",
["interpolation", [
["delimiter", "#{"],
"bar",
["delimiter", "}"]
]],
"/"
]],
["punctuation", ";"],

["regex", [
"%r!foo?bar",
["interpolation", [
["delimiter", "#{"],
["number", "39"],
["operator", "+"],
["number", "3"],
["delimiter", "}"]
]],
"!"
]],

["regex", [
"%r(foo?bar",
["interpolation", [
["delimiter", "#{"],
["number", "39"],
["operator", "+"],
["number", "3"],
["delimiter", "}"]
]],
")"
]],

["regex", [
"%r{foo?bar",
["interpolation", [
["delimiter", "#{"],
["number", "39"],
["operator", "+"],
["number", "3"],
["delimiter", "}"]
]],
"}"
]],

["regex", [
"%r[foo?bar",
["interpolation", [
["delimiter", "#{"],
["number", "39"],
["operator", "+"],
["number", "3"],
["delimiter", "}"]
]],
"]"
]],

["regex", [
"%r<foo?bar",
["interpolation", [
["delimiter", "#{"],
["number", "39"],
["operator", "+"],
["number", "3"],
["delimiter", "}"]
]],
">"
]],

["regex", ["/foo/"]],
["comment", "# comment"],

["regex", [
"/foo",
["interpolation", [
["delimiter", "#{"],
"bar",
["delimiter", "}"]
]],
"/"
]],
["comment", "# comment"]
]

----------------------------------------------------

Checks for regex.
Checks for regex.

0 comments on commit f08c2f7

Please sign in to comment.