aboutsummaryrefslogtreecommitdiff
path: root/gen/str.erl
diff options
context:
space:
mode:
authorLouis Pilfold <louis@lpil.uk>2019-03-18 22:49:05 +0000
committerLouis Pilfold <louis@lpil.uk>2019-03-18 22:50:06 +0000
commit4120b46b38382395bcf4009b2c5ffd9442426547 (patch)
treeabfb7cab57fad8a85fb210c208af0e4ec333b222 /gen/str.erl
parent2cbe6bd721ae2be68c29e4de71db51bafc3478f8 (diff)
downloadgleam_stdlib-4120b46b38382395bcf4009b2c5ffd9442426547.tar.gz
gleam_stdlib-4120b46b38382395bcf4009b2c5ffd9442426547.zip
string module, iodata additions
Diffstat (limited to 'gen/str.erl')
-rw-r--r--gen/str.erl59
1 files changed, 59 insertions, 0 deletions
diff --git a/gen/str.erl b/gen/str.erl
new file mode 100644
index 0000000..9625807
--- /dev/null
+++ b/gen/str.erl
@@ -0,0 +1,59 @@
+-module(str).
+-compile(no_auto_import).
+-include_lib("eunit/include/eunit.hrl").
+
+-export([length/1, lowercase/1, uppercase/1, reverse/1, split/2, replace/3]).
+
+length(A) ->
+ string:length(A).
+
+-ifdef(TEST).
+length_test() ->
+ expect:equal(length(<<"ß↑e̊">>), 3),
+ expect:equal(length(<<"Gleam">>), 5),
+ expect:equal(length(<<"">>), 0).
+-endif.
+
+lowercase(A) ->
+ string:lowercase(A).
+
+-ifdef(TEST).
+lowercase_test() ->
+ expect:equal(lowercase(<<"Gleam">>), <<"gleam">>).
+-endif.
+
+uppercase(A) ->
+ string:uppercase(A).
+
+-ifdef(TEST).
+uppercase_test() ->
+ expect:equal(uppercase(<<"Gleam">>), <<"GLEAM">>).
+-endif.
+
+reverse(String) ->
+ iodata:to_string(iodata:reverse(iodata:new(String))).
+
+-ifdef(TEST).
+reverse_test() ->
+ expect:equal(reverse(<<"Gleam">>), <<"maelG">>).
+-endif.
+
+split(String, On) ->
+ list:map(iodata:split(iodata:new(String), On), fun iodata:to_string/1).
+
+-ifdef(TEST).
+split_test() ->
+ expect:equal(split(<<"Gleam,Erlang,Elixir">>, <<",">>),
+ [<<"Gleam">>, <<"Erlang">>, <<"Elixir">>]),
+ expect:equal(split(<<"Gleam, Erlang,Elixir">>, <<", ">>),
+ [<<"Gleam">>, <<"Erlang,Elixir">>]).
+-endif.
+
+replace(String, Pattern, With) ->
+ iodata:to_string(iodata:replace(iodata:new(String), Pattern, With)).
+
+-ifdef(TEST).
+replace_test() ->
+ expect:equal(replace(<<"Gleam,Erlang,Elixir">>, <<",">>, <<"++">>),
+ <<"Gleam++Erlang++Elixir">>).
+-endif.