defmodule <%= inspect @module %> do @moduledoc false @type t :: map() @spec new() :: t def new do %{ greeting: "It works!"<%= if @simulator.options.response_stubs? do %>, response_stubs: %{}<% end %> } end @spec get_greeting(t) :: String.t() def get_greeting(state) do state.greeting end @spec set_greeting(t, String.t()) :: t def set_greeting(state, greeting) do %{state | greeting: greeting} end <%= if @simulator.options.response_stubs? do %> def get_response_stub(state, route_id) do with nil <- state.response_stubs[:all] do state.response_stubs[route_id] end end def stub_response(state, route_id, response_id) do response_stubs = Map.put(state.response_stubs, route_id, response_id) %{state | response_stubs: response_stubs} end def clear_stubbed_responses(state, :all) do %{state | response_stubs: %{}} end def clear_stubbed_responses(state, route_id) do Map.update!(state, :response_stubs, &Map.delete(&1, route_id)) end <% end %> end