Packages
one_piece_commanded
0.7.4
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/value_object.ex
defmodule OnePiece.Commanded.ValueObject do
@moduledoc """
Defines a module as a "Value Object". For more information about value objects, please read the following:
- [Value Object Wikipedia](https://en.wikipedia.org/wiki/Value_object)
- [ValueObject by Martin Fowler](https://martinfowler.com/bliki/ValueObject.html)
"""
@doc """
Converts the module into an `Ecto.Schema`, and derive from `Jason.Encoder`.
## Usage
defmodule MyValueObject do
use OnePiece.Commanded.ValueObject
embedded_schema do
# ...
end
end
"""
@spec __using__(opts :: []) :: any()
defmacro __using__(_opts \\ []) do
quote do
use Ecto.Schema
@derive Jason.Encoder
@primary_key false
end
end
end