Packages
krug
0.1.0
2.0.36
2.0.35
2.0.34
2.0.33
2.0.32
2.0.31
2.0.30
2.0.29
2.0.27
2.0.26
2.0.25
2.0.24
2.0.23
2.0.22
2.0.20
2.0.19
2.0.18
2.0.17
2.0.16
2.0.15
2.0.14
2.0.13
2.0.12
2.0.11
2.0.10
2.0.9
2.0.8
2.0.7
2.0.6
2.0.5
2.0.4
2.0.1
2.0.0
1.1.53
1.1.52
1.1.50
1.1.49
1.1.48
1.1.47
1.1.46
1.1.45
1.1.44
1.1.43
1.1.42
1.1.41
1.1.40
1.1.39
1.1.38
1.1.37
1.1.36
1.1.35
1.1.34
1.1.33
1.1.32
1.1.31
1.1.30
1.1.29
1.1.28
1.1.27
1.1.26
1.1.25
1.1.24
1.1.23
1.1.22
1.1.21
1.1.20
1.1.19
1.1.18
1.1.17
1.1.16
1.1.15
1.1.14
1.1.12
1.1.10
1.1.9
1.1.8
1.1.7
1.1.6
1.1.5
1.1.4
1.1.3
1.1.2
1.1.1
1.1.0
1.0.9
1.0.8
1.0.7
1.0.6
1.0.5
1.0.4
1.0.3
1.0.2
1.0.1
1.0.0
0.5.5
0.5.4
0.5.3
0.5.2
0.5.1
0.5.0
0.4.31
0.4.30
0.4.29
0.4.28
0.4.27
0.4.26
0.4.25
0.4.24
0.4.23
0.4.22
0.4.20
0.4.19
0.4.18
0.4.17
0.4.16
0.4.15
0.4.14
0.4.13
0.4.12
0.4.11
0.4.10
0.4.9
0.4.8
0.4.7
0.4.6
0.4.5
0.4.4
0.4.3
0.4.2
0.4.1
0.4.0
0.3.9
0.3.8
0.3.7
0.3.6
0.3.5
0.3.4
0.3.3
0.3.2
0.3.1
0.3.0
0.2.1
0.2.0
0.1.0
A Utilitary package functionalities modules for improve a secure performatic development.
Current section
Files
Jump to
Current section
Files
lib/krug/util/map.util.ex
defmodule Krug.MapUtil do
@moduledoc """
Utilitary safe module to manipulate Map structs.
"""
@doc """
Obtain a value from a Map, respective to a key.
If the map or key received is nil/invalid return nil.
If key don't exists in map, return nil.
## Example
```elixir
iex > map = %{a: 1, b: 3}
iex > Krug.MapUtil.get(map,:a)
1
```
"""
def get(map,key) do
cond do
(nil == map or nil == key) -> nil
(Map.has_key?(map,key)) -> Map.get(map,key)
(Map.has_key?(map,"#{key}")) -> map["#{key}"]
true -> nil
end
end
@doc """
Delete a value from a Map, respective to a key.
If receive a nil/invalid/empty key, return the map received.
If receive a nil map or received map is invalid or don't
contains the key, return the map received.
## Example
```elixir
iex > map = %{a: 1, b: 3}
iex > Krug.MapUtil.delete(map,:a)
%{b: 3}
```
"""
def delete(map,key) do
cond do
(nil == map or nil == key) -> map
(Map.has_key?(map,key)) -> Map.delete(map,key)
(Map.has_key?(map,"#{key}")) -> Map.delete(map,"#{key}")
true -> map
end
end
@doc """
Delete all values from a Map, respective to received keys in list/enum.
If receive a nil/invalid/empty keys list/enum, return the map received.
Ignore keys that are invalid or don't exist in received map.
## Example
```elixir
iex > map = %{a: 1, b: 3, c: 10}
iex > Krug.MapUtil.deleteAll(map,[:a,:c,:d])
%{b: 3}
```
"""
def deleteAll(map,keys) do
cond do
(nil == map or nil == keys or length(keys) == 0) -> map
(length(keys) == 1) -> delete(map,hd(keys))
true -> deleteAll(delete(map,hd(keys)),tl(keys))
end
end
@doc """
Replace/update a value from a Map, respective to a key.
If receive a nil/invalid key, return the map received.
If receive a nil map or received map is invalid or don't
contains the key, return the map received.
If receives a valid value and the key received is valid and not
exists in map, then add the new key and value to map.
## Examples
```elixir
iex > map = %{a: 1, b: 3}
iex > Krug.MapUtil.replace(map,:a,3)
%{a: 3, b: 3}
```
```elixir
iex > map = %{a: 1, b: 3}
iex > Krug.MapUtil.replace(map,:c,101)
%{a: 3, b: 3, c: 101}
```
"""
def replace(map,key,newValue) do
cond do
(nil == map or nil == key) -> map
(Map.has_key?(map,key)) -> Map.replace!(map,key,newValue)
(Map.has_key?(map,"#{key}")) -> Map.replace!(map,"#{key}",newValue)
(nil == newValue) -> map
true -> map |> Map.put(key,newValue)
end
end
end