Expose hope_kv_list:presence_violations_to_list/1 2.5.0
authorSiraaj Khandkar <siraaj@khandkar.net>
Wed, 22 Apr 2015 14:56:18 +0000 (10:56 -0400)
committerSiraaj Khandkar <siraaj@khandkar.net>
Wed, 22 Apr 2015 14:56:18 +0000 (10:56 -0400)
src/hope.app.src
src/hope_kv_list.erl

index fee89b3..b16a643 100644 (file)
@@ -1,7 +1,7 @@
 {application, hope,
  [
   {description, "Higher Order Programming in Erlang"},
-  {vsn, "2.4.1"},
+  {vsn, "2.5.0"},
   {registered, []},
   {applications, [
                   kernel,
index 394e53d..2000098 100644 (file)
@@ -28,6 +28,7 @@
     , find_unique_presence_violations/3  % Specify optional keys
     , validate_unique_presence/2  % No optional keys
     , validate_unique_presence/3  % Specify optional keys
+    , presence_violations_to_list/1
     ]).
 
 
@@ -146,28 +147,8 @@ validate_unique_presence(T, KeysRequired, KeysOptional) ->
         , keys_unsupported = []
         } ->
             {ok, ok}
-    ;   #hope_kv_list_presence_violations
-        { keys_missing     = KeysMissing
-        , keys_duplicated  = KeysDuplicated
-        , keys_unsupported = KeysUnsupported
-        } ->
-            ErrorMissing =
-                case KeysMissing
-                of  []    -> []
-                ;   [_|_] -> [{keys_missing, KeysMissing}]
-                end,
-            ErrorDups =
-                case KeysDuplicated
-                of  []    -> []
-                ;   [_|_] -> [{keys_duplicated, KeysDuplicated}]
-                end,
-            ErrorUnsupported =
-                case KeysUnsupported
-                of  []    -> []
-                ;   [_|_] -> [{keys_unsupported, KeysUnsupported}]
-                end,
-            Errors = ErrorDups ++ ErrorMissing ++ ErrorUnsupported,
-            {error, Errors}
+    ;   #hope_kv_list_presence_violations{}=Violations ->
+            {error, presence_violations_to_list(Violations)}
     end.
 
 -spec find_unique_presence_violations(t(K, _V), [K]) ->
@@ -191,6 +172,30 @@ find_unique_presence_violations(T, KeysRequired, KeysOptional) ->
     , keys_unsupported = KeysUnsupported
     }.
 
+-spec presence_violations_to_list(presence_violations(K)) ->
+    [presence_error(K)].
+presence_violations_to_list(#hope_kv_list_presence_violations
+{ keys_missing     = KeysMissing
+, keys_duplicated  = KeysDuplicated
+, keys_unsupported = KeysUnsupported
+}) ->
+    ErrorMissing =
+        case KeysMissing
+        of  []    -> []
+        ;   [_|_] -> [{keys_missing, KeysMissing}]
+        end,
+    ErrorDups =
+        case KeysDuplicated
+        of  []    -> []
+        ;   [_|_] -> [{keys_duplicated, KeysDuplicated}]
+        end,
+    ErrorUnsupported =
+        case KeysUnsupported
+        of  []    -> []
+        ;   [_|_] -> [{keys_unsupported, KeysUnsupported}]
+        end,
+    ErrorDups ++ ErrorMissing ++ ErrorUnsupported.
+
 
 %% ============================================================================
 %% Helpers
This page took 0.024258 seconds and 4 git commands to generate.