changed
hex_metadata.config
|
@@ -34,4 +34,4 @@
|
34
34
|
{<<"optional">>,false},
|
35
35
|
{<<"repository">>,<<"hexpm">>},
|
36
36
|
{<<"requirement">>,<<"~> 2.0.2">>}]]}.
|
37
|
- {<<"version">>,<<"1.1.0">>}.
|
37
|
+ {<<"version">>,<<"1.1.1">>}.
|
changed
lib/cereal/builders/entity.ex
|
@@ -27,15 +27,18 @@ defmodule Cereal.Builders.Entity do
|
27
27
|
|
28
28
|
# if an assigns/2 function was specified in the serializer - we'll add its
|
29
29
|
# return value to the conn's assigns
|
30
|
- defp do_assigns(%{serializer: serializer, conn: conn} = context) do
|
30
|
+ defp do_assigns(%{serializer: serializer, conn: conn, data: data} = context) do
|
31
|
+ conn = Map.put_new(conn, :assigns, %{})
|
31
32
|
conn =
|
32
|
- context.data
|
33
|
+ data
|
33
34
|
|> serializer.assigns(conn)
|
34
|
- |> Enum.reduce(conn, fn {key, value}, acc -> assign(acc, key, value) end)
|
35
|
-
|
36
|
- Map.put(context, :conn, conn)
|
35
|
+ |> Enum.reduce(conn, &do_assign/2)
|
36
|
+ %{context | conn: conn}
|
37
37
|
end
|
38
38
|
|
39
|
+ defp do_assign({key, value}, %Plug.Conn{} = acc), do: assign(acc, key, value)
|
40
|
+ defp do_assign({key, value}, %{} = acc), do: put_in(acc, [:assigns, key], value)
|
41
|
+
|
39
42
|
defp attributes(%{serializer: serializer} = context) do
|
40
43
|
serializer.attributes(context.data, context.conn)
|
41
44
|
|> Enum.map(fn {key, fnc} -> {key, fnc.(context.data, context.conn)} end)
|
changed
mix.exs
|
@@ -1,7 +1,7 @@
|
1
1
|
defmodule Cereal.Mixfile do
|
2
2
|
use Mix.Project
|
3
3
|
|
4
|
- @version "1.1.0"
|
4
|
+ @version "1.1.1"
|
5
5
|
|
6
6
|
def project do
|
7
7
|
[app: :cereal,
|