@@ -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
6874end
0 commit comments