{cn, opts} = Keyword.pop(opts, :client_name)
state = do_init(opts)
Client.add(cn, self())
- {:ok, %{state | client_name: cn}}
+ {:ok, add_client(state, cn)}
end
+ defp add_client(state, cn) when is_struct(state) do
+ struct(state, %{client_name: cn})
+ end
+
+ defp add_client(state, cn), do: %{state | client_name: cn}
+
@impl true
def handle_continue({:registered, _}, state), do: {:noreply, state}
quote location: :keep do
alias Wampex.Roles.Dealer.Invocation
- @procedures [unquote(procedure) | @procedures]
+ procs = Module.get_attribute(__MODULE__, :procedures)
+ Module.put_attribute(__MODULE__, :procedures, [unquote(procedure) | procs])
@impl true
def handle_info(
alias Wampex.Client
alias Wampex.Roles.Broker.Event
- @topics [unquote(topic) | @topics]
+ topics = Module.get_attribute(__MODULE__, :topics)
+ Module.put_attribute(__MODULE__, :topics, [unquote(topic) | topics])
@impl true
def handle_info(