summaryrefslogtreecommitdiff
path: root/deps/gsms/src/gsms_lib.erl
diff options
context:
space:
mode:
Diffstat (limited to 'deps/gsms/src/gsms_lib.erl')
-rw-r--r--deps/gsms/src/gsms_lib.erl25
1 files changed, 25 insertions, 0 deletions
diff --git a/deps/gsms/src/gsms_lib.erl b/deps/gsms/src/gsms_lib.erl
new file mode 100644
index 0000000..187aefd
--- /dev/null
+++ b/deps/gsms/src/gsms_lib.erl
@@ -0,0 +1,25 @@
+-module(gsms_lib).
+
+-export([get_opt/2,
+ get_opt/3]).
+
+get_opt(K, Opts) when is_atom(K) ->
+ case lists:keyfind(K, 1, Opts) of
+ false -> erlang:error({mandatory, K});
+ {_, V} -> V
+ end;
+get_opt({K, Def}, Opts) ->
+ get_opt(K, Opts, Def).
+
+get_opt(K, Opts, Def) ->
+ case lists:keyfind(K, 1, Opts) of
+ false when is_function(Def, 0) ->
+ Def();
+ false when Def == '$mandatory' ->
+ error({mandatory, K});
+ false ->
+ Def;
+ {_, V} ->
+ V
+ end.
+