Files
n8n-openai-adapter/lib/string.ex
T
José Valim b4e5245515 Revert "Demote andalso and orelse from operators."
This reverts commit 246682755c.

Conflicts:

	lib/module.ex
2012-02-05 20:51:56 +01:00

41 lines
971 B
Elixir

defmodule String do
# Receives a string as a list and escapes all occorrences
# of char and any string interpolation
def escape(other, char) do
[char|do_escape(other, char)]
end
## Helpers
defp do_escape([char|t], char) do
[?\\,char|do_escape(t, char)]
end
defp do_escape([h|t], char) when
h == ?# orelse h == ?\b orelse
h == ?\d orelse h == ?\e orelse
h == ?\f orelse h == ?\n orelse
h == ?\r orelse h == ?\\ orelse
h == ?\t orelse h == ?\v do
[?\\,escape_map(h)|do_escape(t, char)]
end
defp do_escape([h|t], char) do
[h|do_escape(t,char)]
end
defp do_escape([], char) do
[char]
end
defp escape_map(?#), do: ?#
defp escape_map(?\b), do: ?b
defp escape_map(?\d), do: ?d
defp escape_map(?\e), do: ?e
defp escape_map(?\f), do: ?f
defp escape_map(?\n), do: ?n
defp escape_map(?\r), do: ?r
defp escape_map(?\\), do: ?\\
defp escape_map(?\t), do: ?t
defp escape_map(?\v), do: ?v
end