aboutsummaryrefslogtreecommitdiff
path: root/gen
diff options
context:
space:
mode:
Diffstat (limited to 'gen')
-rw-r--r--gen/src/gleam@string.erl7
-rw-r--r--gen/test/gleam@string_test.erl12
2 files changed, 17 insertions, 2 deletions
diff --git a/gen/src/gleam@string.erl b/gen/src/gleam@string.erl
index c94fb9f..5d85771 100644
--- a/gen/src/gleam@string.erl
+++ b/gen/src/gleam@string.erl
@@ -1,7 +1,7 @@
-module(gleam@string).
-compile(no_auto_import).
--export([length/1, lowercase/1, uppercase/1, compare/2, reverse/1, split/2, replace/3, append/2, concat/1]).
+-export([length/1, lowercase/1, uppercase/1, compare/2, reverse/1, split/2, replace/3, append/2, concat/1, join/2]).
length(A) ->
string:length(A).
@@ -36,3 +36,8 @@ append(First, Second) ->
concat(Strings) ->
gleam@iodata:to_string(gleam@iodata:from_strings(Strings)).
+
+join(Strings, Separator) ->
+ gleam@iodata:to_string(
+ gleam@iodata:from_strings(gleam@list:intersperse(Strings, Separator))
+ ).
diff --git a/gen/test/gleam@string_test.erl b/gen/test/gleam@string_test.erl
index 777c498..ed4b204 100644
--- a/gen/test/gleam@string_test.erl
+++ b/gen/test/gleam@string_test.erl
@@ -1,7 +1,7 @@
-module(gleam@string_test).
-compile(no_auto_import).
--export([length_test/0, lowercase_test/0, uppercase_test/0, reverse_test/0, split_test/0, replace_test/0, append_test/0, compare_test/0, concat_test/0]).
+-export([length_test/0, lowercase_test/0, uppercase_test/0, reverse_test/0, split_test/0, replace_test/0, append_test/0, compare_test/0, concat_test/0, join_test/0]).
length_test() ->
gleam@expect:equal(gleam@string:length(<<"ß↑e̊">>), 3),
@@ -51,3 +51,13 @@ concat_test() ->
gleam@string:concat([<<"Hello">>, <<", ">>, <<"world!">>]),
<<"Hello, world!">>
).
+
+join_test() ->
+ gleam@expect:equal(
+ gleam@string:join([<<"Hello">>, <<"world!">>], <<", ">>),
+ <<"Hello, world!">>
+ ),
+ gleam@expect:equal(
+ gleam@string:join([<<"Hello">>, <<"world!">>], <<"-">>),
+ <<"Hello-world!">>
+ ).