aboutsummaryrefslogtreecommitdiff
path: root/src/proplutils.erl
diff options
context:
space:
mode:
Diffstat (limited to 'src/proplutils.erl')
-rw-r--r--src/proplutils.erl40
1 files changed, 40 insertions, 0 deletions
diff --git a/src/proplutils.erl b/src/proplutils.erl
new file mode 100644
index 0000000..a78a630
--- /dev/null
+++ b/src/proplutils.erl
@@ -0,0 +1,40 @@
+%% @author Guido Günther <agx@sigxcpu.org>
+%% @copyright 2013 godiug.net
+%%
+%% This library is free software; you can redistribute it and/or
+%% modify it under the terms of the GNU Lesser General Public
+%% License as published by the Free Software Foundation; either
+%% version 3 of the License, or (at your option) any later version.
+%%
+%% This library is distributed in the hope that it will be useful,
+%% but WITHOUT ANY WARRANTY; without even the implied warranty of
+%% MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+%% Lesser General Public License for more details.
+%%
+%% You should have received a copy of the GNU Lesser General Public
+%% License along with this library. If not, see
+%% <http://www.gnu.org/licenses/>.
+%%
+%% @doc Simplify proplist manipulation a bit
+
+-module(proplutils).
+-export([delete/2,
+ delete_except/2
+ ]).
+
+%% @doc Delete all Keys from Proplist
+delete(Key, PropList) when is_atom(Key) ->
+ proplists:delete(Key, PropList);
+delete([], Proplist) -> Proplist;
+delete([H | T], PropList) ->
+ PL = proplists:delete(H, PropList),
+ delete(T, PL).
+
+%% @doc Delete all keys except Keys from PropList
+delete_except(Key, PropList) when is_atom(Key) ->
+ delete_except([Key], PropList);
+delete_except(Keys, PropList) when is_list(Keys) ->
+ [{X, Y} || {X, Y} <- PropList, lists:member(X, Keys)].
+
+
+