diff options
-rw-r--r-- | CHANGELOG.md | 2 | ||||
-rw-r--r-- | src/gleam/string.gleam | 12 | ||||
-rw-r--r-- | test/gleam/string_test.gleam | 12 |
3 files changed, 13 insertions, 13 deletions
diff --git a/CHANGELOG.md b/CHANGELOG.md index bbfecf8..663be69 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -12,7 +12,7 @@ - The `iterator` module gains the `index`, `iterate`, `zip`, `scan`, `take_while`, `drop_while`, `chunk`, `sized_chunk`, `intersperse`, `any` and `all` functions. - Breaking change in `iterator.take`. Now it returns an iterator instead of a list. -- The `string` module gains the `drop_before` function. +- The `string` module gains the `crop` function. ## v0.14.0 - 2021-02-18 diff --git a/src/gleam/string.gleam b/src/gleam/string.gleam index 1bec6a5..8bef422 100644 --- a/src/gleam/string.gleam +++ b/src/gleam/string.gleam @@ -171,14 +171,14 @@ pub fn slice(from string: String, at_index idx: Int, length len: Int) -> String /// If the first string does not contain the second string, the first string is returned. /// /// ## Examples -/// > drop_before(from: "The Lone Gunmen", before: "Lone") +/// > crop(from: "The Lone Gunmen", before: "Lone") /// "Lone Gunmen" /// -pub fn drop_before(from string: String, before substring: String) -> String { - case split_once(string, substring) { - Ok(tuple(_, rest)) -> concat([substring, rest]) - Error(Nil) -> string - } +pub fn crop(from string: String, before substring: String) -> String { + string + |> erl_contains(substring) + |> dynamic.string() + |> result.unwrap(string) } /// Drops *n* Graphemes from the left side of a string. diff --git a/test/gleam/string_test.gleam b/test/gleam/string_test.gleam index b0e0fe6..3b1db57 100644 --- a/test/gleam/string_test.gleam +++ b/test/gleam/string_test.gleam @@ -204,24 +204,24 @@ pub fn slice_test() { |> should.equal("") } -pub fn drop_before_test() { +pub fn crop_test() { "gleam" - |> string.drop_before("gl") + |> string.crop("gl") |> should.equal("gleam") "gleam" - |> string.drop_before("le") + |> string.crop("le") |> should.equal("leam") - string.drop_before(from: "gleam", before: "ea") + string.crop(from: "gleam", before: "ea") |> should.equal("eam") "gleam" - |> string.drop_before("") + |> string.crop("") |> should.equal("gleam") "gleam" - |> string.drop_before("!") + |> string.crop("!") |> should.equal("gleam") } |