Packages
one_piece_commanded
0.10.0
0.26.0
0.25.2
0.25.1
0.25.0
0.24.0
0.23.0
0.22.0
0.21.4
0.21.3
0.21.2
0.21.1
0.21.0
0.20.0
0.19.1
0.19.0
0.18.0
0.17.0
0.16.0
0.15.2
0.15.1
0.15.0
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.1
0.9.0
0.8.0
0.7.4
0.7.3
0.7.2
0.7.1
0.7.0
0.6.0
0.5.0
0.4.1
0.4.0
0.3.0
0.2.1
0.2.0
0.1.3
0.1.2
0.1.1
0.1.0
Extend Commanded package
Current section
Files
Jump to
Current section
Files
lib/one_piece/commanded.ex
defmodule OnePiece.Commanded do
@moduledoc """
Extend `Commanded` package. A swiss army knife for applications following Domain-Driven Design (DDD), Event Sourcing
(ES), and Command and Query Responsibility Segregation (CQRS).
"""
@doc """
Copy the information from the `params` map into the given `target` map.
iex> OnePiece.Commanded.cast_to(%{}, %{name: "ubi-wan", last_name: "kenobi"}, [:last_name])
%{last_name: "kenobi"}
"""
@spec cast_to(target :: map, params :: map, keys :: [Map.key]) :: map
def cast_to(target, params, keys) do
Enum.reduce(keys, target, &Map.put(&2, &1, Map.get(params, &1)))
end
end