From ef5f27b03f363dbd5c7525e85d80899575c09621 Mon Sep 17 00:00:00 2001 From: Steve Song Date: Fri, 23 Mar 2012 18:29:43 -0700 Subject: [PATCH 1/2] Added ErlyDTL example --- .../src/hello_world_erlydtl.app.src | 13 ++++++++++ .../src/hello_world_erlydtl.erl | 24 +++++++++++++++++++ .../src/hello_world_erlydtl_handler.erl | 13 ++++++++++ .../src/hello_world_erlydtl_sup.erl | 10 ++++++++ .../templates/erlyexample.dtl | 8 +++++++ rebar.config | 6 +++-- startit | 0 7 files changed, 72 insertions(+), 2 deletions(-) create mode 100644 apps/hello_world_erlydtl/src/hello_world_erlydtl.app.src create mode 100644 apps/hello_world_erlydtl/src/hello_world_erlydtl.erl create mode 100644 apps/hello_world_erlydtl/src/hello_world_erlydtl_handler.erl create mode 100644 apps/hello_world_erlydtl/src/hello_world_erlydtl_sup.erl create mode 100644 apps/hello_world_erlydtl/templates/erlyexample.dtl mode change 100644 => 100755 startit diff --git a/apps/hello_world_erlydtl/src/hello_world_erlydtl.app.src b/apps/hello_world_erlydtl/src/hello_world_erlydtl.app.src new file mode 100644 index 0000000..acae0a9 --- /dev/null +++ b/apps/hello_world_erlydtl/src/hello_world_erlydtl.app.src @@ -0,0 +1,13 @@ +{application, hello_world_erlydtl, + [ + {description, "Hello World ErlyDTL Example"}, + {vsn, git}, + {registered, []}, + {applications, [ + kernel, + stdlib, + cowboy + ]}, + {mod, { hello_world_erlydtl, []}}, + {env, []} + ]}. diff --git a/apps/hello_world_erlydtl/src/hello_world_erlydtl.erl b/apps/hello_world_erlydtl/src/hello_world_erlydtl.erl new file mode 100644 index 0000000..b6ec57a --- /dev/null +++ b/apps/hello_world_erlydtl/src/hello_world_erlydtl.erl @@ -0,0 +1,24 @@ +-module(hello_world_erlydtl). +-export([start/0, start/2, stop/0]). + +start() -> + application:start(cowboy), + application:start(hello_world_erlydtl). + +%% =================================================================== +%% Application callbacks +%% =================================================================== + +start(_Type, _Args) -> + Dispatch = [ + {'_', [ + {'_', hello_world_erlydtl_handler, []} + ]} + ], + cowboy:start_listener(my_http_listener, 1, + cowboy_tcp_transport, [{port, 8080}], + cowboy_http_protocol, [{dispatch, Dispatch}] + ). + +stop() -> + application:stop(cowboy). diff --git a/apps/hello_world_erlydtl/src/hello_world_erlydtl_handler.erl b/apps/hello_world_erlydtl/src/hello_world_erlydtl_handler.erl new file mode 100644 index 0000000..bd56514 --- /dev/null +++ b/apps/hello_world_erlydtl/src/hello_world_erlydtl_handler.erl @@ -0,0 +1,13 @@ +-module(hello_world_erlydtl_handler). +-export([init/3, handle/2, terminate/2]). + +init({tcp, http}, Req, _Opts) -> + {ok, Req, undefined_state}. + +handle(Req, State) -> + {ok, Body} = erlyexample_dtl:render([{dynamic_var, erlang:localtime()}]), + {ok, Reply} = cowboy_http_req:reply(200, [], Body, Req), + {ok, Reply, State}. + +terminate(_Req, _State) -> + ok. diff --git a/apps/hello_world_erlydtl/src/hello_world_erlydtl_sup.erl b/apps/hello_world_erlydtl/src/hello_world_erlydtl_sup.erl new file mode 100644 index 0000000..2b886cd --- /dev/null +++ b/apps/hello_world_erlydtl/src/hello_world_erlydtl_sup.erl @@ -0,0 +1,10 @@ +-module(hello_world_erlydtl_sup). +-behaviour(supervisor). +-export([start_link/0, init/1]). + +start_link() -> + supervisor:start_link({local, ?MODULE}, ?MODULE, []). + +init([]) -> + {ok, { {one_for_one, 5, 10}, []} }. + diff --git a/apps/hello_world_erlydtl/templates/erlyexample.dtl b/apps/hello_world_erlydtl/templates/erlyexample.dtl new file mode 100644 index 0000000..8b67489 --- /dev/null +++ b/apps/hello_world_erlydtl/templates/erlyexample.dtl @@ -0,0 +1,8 @@ + + +Generated value:
+ +{{ dynamic_var }} + + + diff --git a/rebar.config b/rebar.config index 70536be..416c2f2 100644 --- a/rebar.config +++ b/rebar.config @@ -7,7 +7,8 @@ "apps/echo_get", "apps/echo_post", "apps/redirect", - "apps/static" + "apps/static", + "apps/hello_world_erlydtl" ]}. {require_otp_vsn, "R15"}. @@ -20,5 +21,6 @@ ]}. {deps, [ - {cowboy, ".*", {git, "https://github.com/extend/cowboy.git", "HEAD"}} + {cowboy, ".*", {git, "https://github.com/extend/cowboy.git", "HEAD"}}, + {erlydtl, ".*", {git, "https://github.com/evanmiller/erlydtl.git", "HEAD"}} ]}. diff --git a/startit b/startit old mode 100644 new mode 100755 From 3c80f256c8b8c7bb9bdcb4f0c1e94b8995c06f2c Mon Sep 17 00:00:00 2001 From: Steve Song Date: Fri, 23 Mar 2012 20:40:53 -0700 Subject: [PATCH 2/2] Using spacing from other examples instead of default Emacs pretty-printing --- .../src/hello_world_erlydtl.erl | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/apps/hello_world_erlydtl/src/hello_world_erlydtl.erl b/apps/hello_world_erlydtl/src/hello_world_erlydtl.erl index b6ec57a..1bafe67 100644 --- a/apps/hello_world_erlydtl/src/hello_world_erlydtl.erl +++ b/apps/hello_world_erlydtl/src/hello_world_erlydtl.erl @@ -5,20 +5,16 @@ start() -> application:start(cowboy), application:start(hello_world_erlydtl). -%% =================================================================== -%% Application callbacks -%% =================================================================== - start(_Type, _Args) -> Dispatch = [ - {'_', [ - {'_', hello_world_erlydtl_handler, []} - ]} - ], + {'_', [ + {'_', hello_world_erlydtl_handler, []} + ]} + ], cowboy:start_listener(my_http_listener, 1, - cowboy_tcp_transport, [{port, 8080}], - cowboy_http_protocol, [{dispatch, Dispatch}] - ). + cowboy_tcp_transport, [{port, 8080}], + cowboy_http_protocol, [{dispatch, Dispatch}] + ). stop() -> application:stop(cowboy).