aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2024-06-23 13:39:00 +0100
committerLouis Pilfold <louis@lpil.uk>2024-06-23 13:39:02 +0100
commit934f181d8943e639a8f8b2730b512bd972f36b5f (patch)
tree9c7fb0007122ad10725b1f9c123f2ccd3eb4d740
parent4a08ef5d49045491e253e6f51204466e98ffb80f (diff)
downloadgleam_stdlib-934f181d8943e639a8f8b2730b512bd972f36b5f.tar.gz
gleam_stdlib-934f181d8943e639a8f8b2730b512bd972f36b5f.zip
Split test, remove extra function
-rw-r--r--src/gleam/regex.gleam13
-rw-r--r--test/gleam/regex_test.gleam12
2 files changed, 16 insertions, 9 deletions
diff --git a/src/gleam/regex.gleam b/src/gleam/regex.gleam
index 0b95922..87f8dbe 100644
--- a/src/gleam/regex.gleam
+++ b/src/gleam/regex.gleam
@@ -191,7 +191,8 @@ pub fn scan(with regex: Regex, content string: String) -> List(Match) {
@external(javascript, "../gleam_stdlib.mjs", "regex_scan")
fn do_scan(a: Regex, b: String) -> List(Match)
-/// Creates a new `String` by replacing all substrings that match the regular expression.
+/// Creates a new `String` by replacing all substrings that match the regular
+/// expression.
///
/// ## Examples
///
@@ -206,14 +207,10 @@ fn do_scan(a: Regex, b: String) -> List(Match)
/// replace(each: re, in: "a,b-c d+e", with: "/")
/// // -> "a/b/c/d/e"
/// `
+@external(erlang, "gleam_stdlib", "regex_replace")
+@external(javascript, "../gleam_stdlib.mjs", "regex_replace")
pub fn replace(
each pattern: Regex,
in string: String,
with substitute: String,
-) -> String {
- do_replace(pattern, string, substitute)
-}
-
-@external(erlang, "gleam_stdlib", "regex_replace")
-@external(javascript, "../gleam_stdlib.mjs", "regex_replace")
-fn do_replace(a: Regex, b: String, c: String) -> String
+) -> String
diff --git a/test/gleam/regex_test.gleam b/test/gleam/regex_test.gleam
index 9229b93..e517577 100644
--- a/test/gleam/regex_test.gleam
+++ b/test/gleam/regex_test.gleam
@@ -162,16 +162,26 @@ pub fn scan_test() {
|> should.equal([])
}
-pub fn replace_test() {
+pub fn replace_0_test() {
let assert Ok(re) = regex.from_string(",")
regex.replace(in: "a,b,c,d", each: re, with: " ")
|> should.equal("a b c d")
+}
+pub fn replace_1_test() {
let assert Ok(re) = regex.from_string("\\d")
regex.replace(in: "Hell1o, World!1", each: re, with: "")
|> should.equal("Hello, World!")
+}
+pub fn replace_2_test() {
let assert Ok(re) = regex.from_string("🐈")
regex.replace(in: "🐈🐈 are great!", each: re, with: "🐕")
|> should.equal("🐕🐕 are great!")
}
+
+pub fn replace_3_test() {
+ let assert Ok(re) = regex.from_string("🐈")
+ regex.replace(re, "🐈🐈 are great!", "🐕")
+ |> should.equal("🐕🐕 are great!")
+}