erlgen 0.0.1 → 0.0.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- data/README.rdoc +16 -1
- data/VERSION +1 -1
- data/erlgen.gemspec +4 -1
- data/lib/erlgen/generator.rb +36 -8
- data/lib/erlgen/templates/gen_event.erl +105 -0
- data/lib/erlgen/templates/gen_fsm.erl +149 -0
- data/lib/erlgen/templates/gen_server.erl +96 -0
- metadata +5 -2
data/README.rdoc
CHANGED
@@ -2,9 +2,19 @@
|
|
2
2
|
|
3
3
|
erlgen is a Erlang application generator. It generates the basic application layout with some simple files to build upon.
|
4
4
|
|
5
|
+
|
6
|
+
== Usage
|
7
|
+
|
8
|
+
The basic command is erlgen projectname to generate a skeleton erlang project named **projectname**. The command-line options include:
|
9
|
+
--with-git
|
10
|
+
initializes a git repository in the project folder (does not commit anything).
|
11
|
+
--gen_server/--gen_fsm/--gen_event
|
12
|
+
instead of generating a application, generates a skeleton gen_server/fsm/event module with the name specified. If you're in the root of your project, it will write the fiel to the _src_ directory. If not, it will write it to the current directory.
|
13
|
+
--help
|
14
|
+
reminds you about the options.
|
15
|
+
|
5
16
|
== Planned features:
|
6
17
|
|
7
|
-
* Include rake tasks (or command line arguments) to generate default gen_server, gen_fsm, etc. modules.
|
8
18
|
* Option to choose between Rake/Make/Emake.
|
9
19
|
|
10
20
|
== Note on Patches/Pull Requests
|
@@ -17,6 +27,11 @@ erlgen is a Erlang application generator. It generates the basic application lay
|
|
17
27
|
(if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)
|
18
28
|
* Send me a pull request. Bonus points for topic branches.
|
19
29
|
|
30
|
+
== Thanks
|
31
|
+
|
32
|
+
I would like to thank the authors of the jeweler gem, lots of code in this gem comes from their work.
|
33
|
+
|
34
|
+
|
20
35
|
== Copyright
|
21
36
|
|
22
37
|
Copyright (c) 2010 Dimitri Krassovski. See LICENSE for details.
|
data/VERSION
CHANGED
@@ -1 +1 @@
|
|
1
|
-
0.0.
|
1
|
+
0.0.2
|
data/erlgen.gemspec
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{erlgen}
|
8
|
-
s.version = "0.0.
|
8
|
+
s.version = "0.0.2"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["Dimitri Krassovski"]
|
@@ -33,6 +33,9 @@ Gem::Specification.new do |s|
|
|
33
33
|
"lib/erlgen/templates/application.app",
|
34
34
|
"lib/erlgen/templates/application.erl",
|
35
35
|
"lib/erlgen/templates/application_sup.erl",
|
36
|
+
"lib/erlgen/templates/gen_event.erl",
|
37
|
+
"lib/erlgen/templates/gen_fsm.erl",
|
38
|
+
"lib/erlgen/templates/gen_server.erl",
|
36
39
|
"spec/erlgen_spec.rb",
|
37
40
|
"spec/spec.opts",
|
38
41
|
"spec/spec_helper.rb"
|
data/lib/erlgen/generator.rb
CHANGED
@@ -1,13 +1,13 @@
|
|
1
1
|
require 'optparse'
|
2
2
|
require 'fileutils'
|
3
3
|
require 'erb'
|
4
|
-
require '
|
4
|
+
require 'date'
|
5
|
+
#require 'git'
|
5
6
|
|
6
7
|
class Erlgen
|
7
8
|
class Generator
|
8
9
|
attr_accessor :project_name, :options
|
9
10
|
def initialize(*args)
|
10
|
-
|
11
11
|
@options = {}
|
12
12
|
@opts = OptionParser.new do |o|
|
13
13
|
o.banner = "Usage: #{File.basename($0)} [options] appname\ne.g. #{File.basename($0)} superapp"
|
@@ -15,15 +15,28 @@ class Erlgen
|
|
15
15
|
@options[:with_git] = true
|
16
16
|
end
|
17
17
|
|
18
|
+
o.on('--gen_server', 'create a skeleton gen_server module') do
|
19
|
+
@options[:file_only] = true
|
20
|
+
@options[:gen] = "gen_server"
|
21
|
+
end
|
22
|
+
|
23
|
+
o.on('--gen_fsm', 'create a skeleton gen_fsm module') do
|
24
|
+
@options[:file_only] = true
|
25
|
+
@options[:gen] = "gen_fsm"
|
26
|
+
end
|
27
|
+
|
28
|
+
o.on('--gen_event', 'create a skeleton gen_event module') do
|
29
|
+
@options[:file_only] = true
|
30
|
+
@options[:gen] = "gen_event"
|
31
|
+
end
|
32
|
+
|
33
|
+
|
18
34
|
o.on_tail('-h', '--help', 'display this help and exit') do
|
19
35
|
@options[:show_help] = true
|
20
36
|
end
|
21
37
|
end
|
22
38
|
@opts.parse!(args)
|
23
|
-
|
24
39
|
@project_name = args.shift
|
25
|
-
|
26
|
-
|
27
40
|
end
|
28
41
|
|
29
42
|
def run
|
@@ -36,8 +49,12 @@ class Erlgen
|
|
36
49
|
$stderr.puts @opts
|
37
50
|
return 1
|
38
51
|
end
|
39
|
-
|
40
|
-
|
52
|
+
|
53
|
+
if @options[:file_only]
|
54
|
+
create_gen
|
55
|
+
else
|
56
|
+
create_files
|
57
|
+
end
|
41
58
|
|
42
59
|
if @options[:with_git]
|
43
60
|
create_version_control
|
@@ -58,10 +75,15 @@ class Erlgen
|
|
58
75
|
output_template_in_target 'application.erl', File.join('src', "#{@project_name}.erl")
|
59
76
|
output_template_in_target 'application_sup.erl', File.join('src', "#{@project_name}_sup.erl")
|
60
77
|
output_template_in_target 'Rakefile'
|
78
|
+
touch_in_target File.join('include', "#{@project_name}.hrl")
|
61
79
|
end
|
62
80
|
|
81
|
+
def create_gen
|
82
|
+
output_template_in_target "#{@options[:gen]}.erl", "#{@project_name}.erl"
|
83
|
+
end
|
84
|
+
|
63
85
|
def target_dir
|
64
|
-
@project_name
|
86
|
+
@options[:file_only] ? (Dir['*'].include?('src') ? 'src' : Dir.pwd) : @project_name
|
65
87
|
end
|
66
88
|
|
67
89
|
def mkdir_in_target(directory)
|
@@ -86,6 +108,12 @@ class Erlgen
|
|
86
108
|
|
87
109
|
$stdout.puts "\tcreate\t#{destination}"
|
88
110
|
end
|
111
|
+
|
112
|
+
def touch_in_target(destination)
|
113
|
+
final_destination = File.join(target_dir, destination)
|
114
|
+
FileUtils.touch final_destination
|
115
|
+
$stdout.puts "\tcreate\t#{destination}"
|
116
|
+
end
|
89
117
|
|
90
118
|
def template_dir
|
91
119
|
File.join(File.dirname(__FILE__), 'templates')
|
@@ -0,0 +1,105 @@
|
|
1
|
+
%%%-------------------------------------------------------------------
|
2
|
+
%%% File : <%= @project_name%>.erl
|
3
|
+
%%% Author :
|
4
|
+
%%% Description :
|
5
|
+
%%%
|
6
|
+
%%% Created : <%= Date.today.year%>
|
7
|
+
%%%-------------------------------------------------------------------
|
8
|
+
-module(<%= @project_name%>).
|
9
|
+
|
10
|
+
-behaviour(gen_event).
|
11
|
+
|
12
|
+
%% API
|
13
|
+
-export([start_link/0, add_handler/0]).
|
14
|
+
|
15
|
+
%% gen_event callbacks
|
16
|
+
-export([init/1, handle_event/2, handle_call/2,
|
17
|
+
handle_info/2, terminate/2, code_change/3]).
|
18
|
+
|
19
|
+
-record(state, {}).
|
20
|
+
|
21
|
+
%%====================================================================
|
22
|
+
%% gen_event callbacks
|
23
|
+
%%====================================================================
|
24
|
+
%%--------------------------------------------------------------------
|
25
|
+
%% Function: start_link() -> {ok,Pid} | {error,Error}
|
26
|
+
%% Description: Creates an event manager.
|
27
|
+
%%--------------------------------------------------------------------
|
28
|
+
start_link() ->
|
29
|
+
gen_event:start_link({local, ?SERVER}).
|
30
|
+
|
31
|
+
%%--------------------------------------------------------------------
|
32
|
+
%% Function: add_handler() -> ok | {'EXIT',Reason} | term()
|
33
|
+
%% Description: Adds an event handler
|
34
|
+
%%--------------------------------------------------------------------
|
35
|
+
add_handler() ->
|
36
|
+
gen_event:add_handler(?SERVER, ?MODULE, []).
|
37
|
+
|
38
|
+
%%====================================================================
|
39
|
+
%% gen_event callbacks
|
40
|
+
%%====================================================================
|
41
|
+
%%--------------------------------------------------------------------
|
42
|
+
%% Function: init(Args) -> {ok, State}
|
43
|
+
%% Description: Whenever a new event handler is added to an event manager,
|
44
|
+
%% this function is called to initialize the event handler.
|
45
|
+
%%--------------------------------------------------------------------
|
46
|
+
init([]) ->
|
47
|
+
{ok, #state{}}.
|
48
|
+
|
49
|
+
%%--------------------------------------------------------------------
|
50
|
+
%% Function:
|
51
|
+
%% handle_event(Event, State) -> {ok, State} |
|
52
|
+
%% {swap_handler, Args1, State1, Mod2, Args2} |
|
53
|
+
%% remove_handler
|
54
|
+
%% Description:Whenever an event manager receives an event sent using
|
55
|
+
%% gen_event:notify/2 or gen_event:sync_notify/2, this function is called for
|
56
|
+
%% each installed event handler to handle the event.
|
57
|
+
%%--------------------------------------------------------------------
|
58
|
+
handle_event(_Event, State) ->
|
59
|
+
{ok, State}.
|
60
|
+
|
61
|
+
%%--------------------------------------------------------------------
|
62
|
+
%% Function:
|
63
|
+
%% handle_call(Request, State) -> {ok, Reply, State} |
|
64
|
+
%% {swap_handler, Reply, Args1, State1,
|
65
|
+
%% Mod2, Args2} |
|
66
|
+
%% {remove_handler, Reply}
|
67
|
+
%% Description: Whenever an event manager receives a request sent using
|
68
|
+
%% gen_event:call/3,4, this function is called for the specified event
|
69
|
+
%% handler to handle the request.
|
70
|
+
%%--------------------------------------------------------------------
|
71
|
+
handle_call(_Request, State) ->
|
72
|
+
Reply = ok,
|
73
|
+
{ok, Reply, State}.
|
74
|
+
|
75
|
+
%%--------------------------------------------------------------------
|
76
|
+
%% Function:
|
77
|
+
%% handle_info(Info, State) -> {ok, State} |
|
78
|
+
%% {swap_handler, Args1, State1, Mod2, Args2} |
|
79
|
+
%% remove_handler
|
80
|
+
%% Description: This function is called for each installed event handler when
|
81
|
+
%% an event manager receives any other message than an event or a synchronous
|
82
|
+
%% request (or a system message).
|
83
|
+
%%--------------------------------------------------------------------
|
84
|
+
handle_info(_Info, State) ->
|
85
|
+
{ok, State}.
|
86
|
+
|
87
|
+
%%--------------------------------------------------------------------
|
88
|
+
%% Function: terminate(Reason, State) -> void()
|
89
|
+
%% Description:Whenever an event handler is deleted from an event manager,
|
90
|
+
%% this function is called. It should be the opposite of Module:init/1 and
|
91
|
+
%% do any necessary cleaning up.
|
92
|
+
%%--------------------------------------------------------------------
|
93
|
+
terminate(_Reason, _State) ->
|
94
|
+
ok.
|
95
|
+
|
96
|
+
%%--------------------------------------------------------------------
|
97
|
+
%% Function: code_change(OldVsn, State, Extra) -> {ok, NewState}
|
98
|
+
%% Description: Convert process state when code is changed
|
99
|
+
%%--------------------------------------------------------------------
|
100
|
+
code_change(_OldVsn, State, _Extra) ->
|
101
|
+
{ok, State}.
|
102
|
+
|
103
|
+
%%--------------------------------------------------------------------
|
104
|
+
%%% Internal functions
|
105
|
+
%%--------------------------------------------------------------------
|
@@ -0,0 +1,149 @@
|
|
1
|
+
%%%-------------------------------------------------------------------
|
2
|
+
%%% File : <%= @project_name%>.erl
|
3
|
+
%%% Author :
|
4
|
+
%%% Description :
|
5
|
+
%%%
|
6
|
+
%%% Created : <%= Date.today.year%>
|
7
|
+
%%%-------------------------------------------------------------------
|
8
|
+
-module(<%= @project_name%>).
|
9
|
+
|
10
|
+
-behaviour(gen_fsm).
|
11
|
+
|
12
|
+
%% API
|
13
|
+
-export([start_link/0]).
|
14
|
+
|
15
|
+
%% gen_fsm callbacks
|
16
|
+
-export([init/1, state_name/2, state_name/3, handle_event/3,
|
17
|
+
handle_sync_event/4, handle_info/3, terminate/3, code_change/4]).
|
18
|
+
|
19
|
+
-record(state, {}).
|
20
|
+
|
21
|
+
%%====================================================================
|
22
|
+
%% API
|
23
|
+
%%====================================================================
|
24
|
+
%%--------------------------------------------------------------------
|
25
|
+
%% Function: start_link() -> ok,Pid} | ignore | {error,Error}
|
26
|
+
%% Description:Creates a gen_fsm process which calls Module:init/1 to
|
27
|
+
%% initialize. To ensure a synchronized start-up procedure, this function
|
28
|
+
%% does not return until Module:init/1 has returned.
|
29
|
+
%%--------------------------------------------------------------------
|
30
|
+
start_link() ->
|
31
|
+
gen_fsm:start_link({local, ?SERVER}, ?MODULE, [], []).
|
32
|
+
|
33
|
+
%%====================================================================
|
34
|
+
%% gen_fsm callbacks
|
35
|
+
%%====================================================================
|
36
|
+
%%--------------------------------------------------------------------
|
37
|
+
%% Function: init(Args) -> {ok, StateName, State} |
|
38
|
+
%% {ok, StateName, State, Timeout} |
|
39
|
+
%% ignore |
|
40
|
+
%% {stop, StopReason}
|
41
|
+
%% Description:Whenever a gen_fsm is started using gen_fsm:start/[3,4] or
|
42
|
+
%% gen_fsm:start_link/3,4, this function is called by the new process to
|
43
|
+
%% initialize.
|
44
|
+
%%--------------------------------------------------------------------
|
45
|
+
init([]) ->
|
46
|
+
{ok, state_name, #state{}}.
|
47
|
+
|
48
|
+
%%--------------------------------------------------------------------
|
49
|
+
%% Function:
|
50
|
+
%% state_name(Event, State) -> {next_state, NextStateName, NextState}|
|
51
|
+
%% {next_state, NextStateName,
|
52
|
+
%% NextState, Timeout} |
|
53
|
+
%% {stop, Reason, NewState}
|
54
|
+
%% Description:There should be one instance of this function for each possible
|
55
|
+
%% state name. Whenever a gen_fsm receives an event sent using
|
56
|
+
%% gen_fsm:send_event/2, the instance of this function with the same name as
|
57
|
+
%% the current state name StateName is called to handle the event. It is also
|
58
|
+
%% called if a timeout occurs.
|
59
|
+
%%--------------------------------------------------------------------
|
60
|
+
state_name(_Event, State) ->
|
61
|
+
{next_state, state_name, State}.
|
62
|
+
|
63
|
+
%%--------------------------------------------------------------------
|
64
|
+
%% Function:
|
65
|
+
%% state_name(Event, From, State) -> {next_state, NextStateName, NextState} |
|
66
|
+
%% {next_state, NextStateName,
|
67
|
+
%% NextState, Timeout} |
|
68
|
+
%% {reply, Reply, NextStateName, NextState}|
|
69
|
+
%% {reply, Reply, NextStateName,
|
70
|
+
%% NextState, Timeout} |
|
71
|
+
%% {stop, Reason, NewState}|
|
72
|
+
%% {stop, Reason, Reply, NewState}
|
73
|
+
%% Description: There should be one instance of this function for each
|
74
|
+
%% possible state name. Whenever a gen_fsm receives an event sent using
|
75
|
+
%% gen_fsm:sync_send_event/2,3, the instance of this function with the same
|
76
|
+
%% name as the current state name StateName is called to handle the event.
|
77
|
+
%%--------------------------------------------------------------------
|
78
|
+
state_name(_Event, _From, State) ->
|
79
|
+
Reply = ok,
|
80
|
+
{reply, Reply, state_name, State}.
|
81
|
+
|
82
|
+
%%--------------------------------------------------------------------
|
83
|
+
%% Function:
|
84
|
+
%% handle_event(Event, StateName, State) -> {next_state, NextStateName,
|
85
|
+
%% NextState} |
|
86
|
+
%% {next_state, NextStateName,
|
87
|
+
%% NextState, Timeout} |
|
88
|
+
%% {stop, Reason, NewState}
|
89
|
+
%% Description: Whenever a gen_fsm receives an event sent using
|
90
|
+
%% gen_fsm:send_all_state_event/2, this function is called to handle
|
91
|
+
%% the event.
|
92
|
+
%%--------------------------------------------------------------------
|
93
|
+
handle_event(_Event, StateName, State) ->
|
94
|
+
{next_state, StateName, State}.
|
95
|
+
|
96
|
+
%%--------------------------------------------------------------------
|
97
|
+
%% Function:
|
98
|
+
%% handle_sync_event(Event, From, StateName,
|
99
|
+
%% State) -> {next_state, NextStateName, NextState} |
|
100
|
+
%% {next_state, NextStateName, NextState,
|
101
|
+
%% Timeout} |
|
102
|
+
%% {reply, Reply, NextStateName, NextState}|
|
103
|
+
%% {reply, Reply, NextStateName, NextState,
|
104
|
+
%% Timeout} |
|
105
|
+
%% {stop, Reason, NewState} |
|
106
|
+
%% {stop, Reason, Reply, NewState}
|
107
|
+
%% Description: Whenever a gen_fsm receives an event sent using
|
108
|
+
%% gen_fsm:sync_send_all_state_event/2,3, this function is called to handle
|
109
|
+
%% the event.
|
110
|
+
%%--------------------------------------------------------------------
|
111
|
+
handle_sync_event(Event, From, StateName, State) ->
|
112
|
+
Reply = ok,
|
113
|
+
{reply, Reply, StateName, State}.
|
114
|
+
|
115
|
+
%%--------------------------------------------------------------------
|
116
|
+
%% Function:
|
117
|
+
%% handle_info(Info,StateName,State)-> {next_state, NextStateName, NextState}|
|
118
|
+
%% {next_state, NextStateName, NextState,
|
119
|
+
%% Timeout} |
|
120
|
+
%% {stop, Reason, NewState}
|
121
|
+
%% Description: This function is called by a gen_fsm when it receives any
|
122
|
+
%% other message than a synchronous or asynchronous event
|
123
|
+
%% (or a system message).
|
124
|
+
%%--------------------------------------------------------------------
|
125
|
+
handle_info(_Info, StateName, State) ->
|
126
|
+
{next_state, StateName, State}.
|
127
|
+
|
128
|
+
%%--------------------------------------------------------------------
|
129
|
+
%% Function: terminate(Reason, StateName, State) -> void()
|
130
|
+
%% Description:This function is called by a gen_fsm when it is about
|
131
|
+
%% to terminate. It should be the opposite of Module:init/1 and do any
|
132
|
+
%% necessary cleaning up. When it returns, the gen_fsm terminates with
|
133
|
+
%% Reason. The return value is ignored.
|
134
|
+
%%--------------------------------------------------------------------
|
135
|
+
terminate(_Reason, _StateName, _State) ->
|
136
|
+
ok.
|
137
|
+
|
138
|
+
%%--------------------------------------------------------------------
|
139
|
+
%% Function:
|
140
|
+
%% code_change(OldVsn, StateName, State, Extra) -> {ok, StateName, NewState}
|
141
|
+
%% Description: Convert process state when code is changed
|
142
|
+
%%--------------------------------------------------------------------
|
143
|
+
code_change(_OldVsn, StateName, State, _Extra) ->
|
144
|
+
{ok, StateName, State}.
|
145
|
+
|
146
|
+
%%--------------------------------------------------------------------
|
147
|
+
%%% Internal functions
|
148
|
+
%%--------------------------------------------------------------------
|
149
|
+
|
@@ -0,0 +1,96 @@
|
|
1
|
+
%%%-------------------------------------------------------------------
|
2
|
+
%%% File : <%= @project_name%>.erl
|
3
|
+
%%% Author :
|
4
|
+
%%% Description :
|
5
|
+
%%%
|
6
|
+
%%% Created : <%= Date.today.year %>
|
7
|
+
%%%-------------------------------------------------------------------
|
8
|
+
-module(<%= @project_name%>).
|
9
|
+
|
10
|
+
-behaviour(gen_server).
|
11
|
+
|
12
|
+
%% API
|
13
|
+
-export([start_link/0]).
|
14
|
+
|
15
|
+
%% gen_server callbacks
|
16
|
+
-export([init/1, handle_call/3, handle_cast/2, handle_info/2,
|
17
|
+
terminate/2, code_change/3]).
|
18
|
+
|
19
|
+
-record(state, {}).
|
20
|
+
|
21
|
+
%%====================================================================
|
22
|
+
%% API
|
23
|
+
%%====================================================================
|
24
|
+
%%--------------------------------------------------------------------
|
25
|
+
%% Function: start_link() -> {ok,Pid} | ignore | {error,Error}
|
26
|
+
%% Description: Starts the server
|
27
|
+
%%--------------------------------------------------------------------
|
28
|
+
start_link() ->
|
29
|
+
gen_server:start_link({local, ?SERVER}, ?MODULE, [], []).
|
30
|
+
|
31
|
+
%%====================================================================
|
32
|
+
%% gen_server callbacks
|
33
|
+
%%====================================================================
|
34
|
+
|
35
|
+
%%--------------------------------------------------------------------
|
36
|
+
%% Function: init(Args) -> {ok, State} |
|
37
|
+
%% {ok, State, Timeout} |
|
38
|
+
%% ignore |
|
39
|
+
%% {stop, Reason}
|
40
|
+
%% Description: Initiates the server
|
41
|
+
%%--------------------------------------------------------------------
|
42
|
+
init([]) ->
|
43
|
+
{ok, #state{}}.
|
44
|
+
|
45
|
+
%%--------------------------------------------------------------------
|
46
|
+
%% Function: %% handle_call(Request, From, State) -> {reply, Reply, State} |
|
47
|
+
%% {reply, Reply, State, Timeout} |
|
48
|
+
%% {noreply, State} |
|
49
|
+
%% {noreply, State, Timeout} |
|
50
|
+
%% {stop, Reason, Reply, State} |
|
51
|
+
%% {stop, Reason, State}
|
52
|
+
%% Description: Handling call messages
|
53
|
+
%%--------------------------------------------------------------------
|
54
|
+
handle_call(_Request, _From, State) ->
|
55
|
+
Reply = ok,
|
56
|
+
{reply, Reply, State}.
|
57
|
+
|
58
|
+
%%--------------------------------------------------------------------
|
59
|
+
%% Function: handle_cast(Msg, State) -> {noreply, State} |
|
60
|
+
%% {noreply, State, Timeout} |
|
61
|
+
%% {stop, Reason, State}
|
62
|
+
%% Description: Handling cast messages
|
63
|
+
%%--------------------------------------------------------------------
|
64
|
+
handle_cast(_Msg, State) ->
|
65
|
+
{noreply, State}.
|
66
|
+
|
67
|
+
%%--------------------------------------------------------------------
|
68
|
+
%% Function: handle_info(Info, State) -> {noreply, State} |
|
69
|
+
%% {noreply, State, Timeout} |
|
70
|
+
%% {stop, Reason, State}
|
71
|
+
%% Description: Handling all non call/cast messages
|
72
|
+
%%--------------------------------------------------------------------
|
73
|
+
handle_info(_Info, State) ->
|
74
|
+
{noreply, State}.
|
75
|
+
|
76
|
+
%%--------------------------------------------------------------------
|
77
|
+
%% Function: terminate(Reason, State) -> void()
|
78
|
+
%% Description: This function is called by a gen_server when it is about to
|
79
|
+
%% terminate. It should be the opposite of Module:init/1 and do any necessary
|
80
|
+
%% cleaning up. When it returns, the gen_server terminates with Reason.
|
81
|
+
%% The return value is ignored.
|
82
|
+
%%--------------------------------------------------------------------
|
83
|
+
terminate(_Reason, _State) ->
|
84
|
+
ok.
|
85
|
+
|
86
|
+
%%--------------------------------------------------------------------
|
87
|
+
%% Func: code_change(OldVsn, State, Extra) -> {ok, NewState}
|
88
|
+
%% Description: Convert process state when code is changed
|
89
|
+
%%--------------------------------------------------------------------
|
90
|
+
code_change(_OldVsn, State, _Extra) ->
|
91
|
+
{ok, State}.
|
92
|
+
|
93
|
+
%%--------------------------------------------------------------------
|
94
|
+
%%% Internal functions
|
95
|
+
%%--------------------------------------------------------------------
|
96
|
+
|
metadata
CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
|
|
5
5
|
segments:
|
6
6
|
- 0
|
7
7
|
- 0
|
8
|
-
-
|
9
|
-
version: 0.0.
|
8
|
+
- 2
|
9
|
+
version: 0.0.2
|
10
10
|
platform: ruby
|
11
11
|
authors:
|
12
12
|
- Dimitri Krassovski
|
@@ -69,6 +69,9 @@ files:
|
|
69
69
|
- lib/erlgen/templates/application.app
|
70
70
|
- lib/erlgen/templates/application.erl
|
71
71
|
- lib/erlgen/templates/application_sup.erl
|
72
|
+
- lib/erlgen/templates/gen_event.erl
|
73
|
+
- lib/erlgen/templates/gen_fsm.erl
|
74
|
+
- lib/erlgen/templates/gen_server.erl
|
72
75
|
- spec/erlgen_spec.rb
|
73
76
|
- spec/spec.opts
|
74
77
|
- spec/spec_helper.rb
|