Skip to content

Commit a18d25e

Browse files
committed
APIs that exclude characters from stream now takes character class (defaults to :alphanumeric like before)
1 parent 9194405 commit a18d25e

File tree

1 file changed

+12
-6
lines changed

1 file changed

+12
-6
lines changed

lib/random_string.ex

Lines changed: 12 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -22,8 +22,11 @@ defmodule RandomString do
2222
stream_without_misleading_characters() |> Enum.take(n) |> List.to_string
2323
end
2424

25-
def take_without_characters(n, character_list) when is_integer(n) and is_list(character_list) do
26-
stream_without_characters(character_list) |> Enum.take(n) |> List.to_string
25+
@doc """
26+
Take `n` characters from a stream with specified character class (defaults to `:alphanumeric`), excluding characters specified in `character_list`.
27+
"""
28+
def take_without_characters(n, character_list, character_class \\ :alphanumeric) when is_integer(n) and is_list(character_list) do
29+
stream_without_characters(character_list, character_class) |> Enum.take(n) |> List.to_string
2730
end
2831

2932

@@ -58,11 +61,14 @@ defmodule RandomString do
5861
end)
5962
end
6063

61-
def stream_without_misleading_characters do
62-
stream(:alphanumeric) |> Stream.reject(fn x -> Enum.member?(@misleading_chars, x) end)
64+
@doc """
65+
Returns a [Stream](https://hexdocs.pm/elixir/Stream.html) of characters that does not include "misleading characters".
66+
"""
67+
def stream_without_misleading_characters(character_class \\ :alphanumeric) do
68+
stream(character_class) |> Stream.reject(fn x -> Enum.member?(@misleading_chars, x) end)
6369
end
6470

65-
def stream_without_characters(character_list) when is_list(character_list) do
66-
stream(:alphanumeric) |> Stream.reject(fn x -> Enum.member?(character_list, x) end)
71+
def stream_without_characters(character_list, character_class \\ :alphanumeric) when is_list(character_list) do
72+
stream(character_class) |> Stream.reject(fn x -> Enum.member?(character_list, x) end)
6773
end
6874
end

0 commit comments

Comments
 (0)