Slide 13
Slide 13 text
Elixir for Rubyists: LRUG March 2016 @digitalronin
Erlang
-module(module).
-compile(export_all).
-behaviour(gen_server).
-export([init/1, handle_call/3, handle_cast/2, handle_info/2, terminate/2, code_change/3]).
%% Public API
start() ->
gen_server:start({local, ?MODULE}, ?MODULE, [], []).
stop(Module) ->
gen_server:call(Module, stop).
stop() ->
stop(?MODULE).
state(Module) ->
gen_server:call(Module, state).
state() ->
state(?MODULE).
%% Server implementation, a.k.a.: callbacks
init([]) ->
say("init", []),
{ok, []}.
handle_call(stop, _From, State) ->
say("stopping by ~p, state was ~p.", [_From, State]),
{stop, normal, stopped, State};
source: http://pupeno.com/2010/01/03/erlang-gen_server-template/