puremvc-gen 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/History.txt ADDED
@@ -0,0 +1,6 @@
1
+ === 1.0.0 / 2008-12-02
2
+
3
+ * 1 major enhancement
4
+
5
+ * Birthday!
6
+
data/Manifest.txt ADDED
@@ -0,0 +1,27 @@
1
+ History.txt
2
+ Manifest.txt
3
+ README.txt
4
+ Rakefile
5
+ bin/puremvc-gen
6
+ conf/build.xml
7
+ conf/config/pmvcgen.log.properties
8
+ conf/config/pmvcgen.properties
9
+ conf/example/author.properties
10
+ conf/example/proj.properties
11
+ conf/templates/.DS_Store
12
+ conf/templates/Event.tpl
13
+ conf/templates/standard/Application.tpl
14
+ conf/templates/standard/Facade.tpl
15
+ conf/templates/standard/MacroCommand.tpl
16
+ conf/templates/standard/Mediator.tpl
17
+ conf/templates/standard/Proxy.tpl
18
+ conf/templates/standard/SimpleCommand.tpl
19
+ lib/pure_m_v_c_gen.rb
20
+ lib/pure_m_v_c_gen/ant_checker.rb
21
+ lib/pure_m_v_c_gen/commands/check_command.rb
22
+ lib/pure_m_v_c_gen/commands/command_extensions.rb
23
+ lib/pure_m_v_c_gen/commands/initialize_command.rb
24
+ lib/pure_m_v_c_gen/commands/new_command.rb
25
+ lib/pure_m_v_c_gen/version.rb
26
+ puremvc-gen.gemspec
27
+ test/test_pure_m_v_c_gen.rb
data/README.txt ADDED
@@ -0,0 +1,48 @@
1
+ = PureMVCGen
2
+
3
+ * FIX (url)
4
+
5
+ == DESCRIPTION:
6
+
7
+ FIX (describe your package)
8
+
9
+ == FEATURES/PROBLEMS:
10
+
11
+ * FIX (list of features or problems)
12
+
13
+ == SYNOPSIS:
14
+
15
+ FIX (code sample of usage)
16
+
17
+ == REQUIREMENTS:
18
+
19
+ * FIX (list of requirements)
20
+
21
+ == INSTALL:
22
+
23
+ * FIX (sudo gem install, anything else)
24
+
25
+ == LICENSE:
26
+
27
+ (The MIT License)
28
+
29
+ Copyright (c) 2008 FIX
30
+
31
+ Permission is hereby granted, free of charge, to any person obtaining
32
+ a copy of this software and associated documentation files (the
33
+ 'Software'), to deal in the Software without restriction, including
34
+ without limitation the rights to use, copy, modify, merge, publish,
35
+ distribute, sublicense, and/or sell copies of the Software, and to
36
+ permit persons to whom the Software is furnished to do so, subject to
37
+ the following conditions:
38
+
39
+ The above copyright notice and this permission notice shall be
40
+ included in all copies or substantial portions of the Software.
41
+
42
+ THE SOFTWARE IS PROVIDED 'AS IS', WITHOUT WARRANTY OF ANY KIND,
43
+ EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
44
+ MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT.
45
+ IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY
46
+ CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT,
47
+ TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE
48
+ SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
data/Rakefile ADDED
@@ -0,0 +1,33 @@
1
+ # -*- ruby -*-
2
+
3
+ require 'rubygems'
4
+ require 'hoe'
5
+ require './lib/pure_m_v_c_gen/version.rb'
6
+
7
+ PKG_NAME = "puremvc-gen"
8
+ PKG_BUILD = ENV['PKG_BUILD'] ? '.' + ENV['PKG_BUILD'] : ''
9
+ version = PureMVCGen::Version::STRING.dup
10
+ if ENV['SNAPSHOT'].to_i == 1
11
+ version << "." << Time.now.utc.strftime("%Y%m%d%H%M%S")
12
+ end
13
+ PKG_VERSION = version
14
+ PKG_FILE_NAME = "#{PKG_NAME}-#{PKG_VERSION}"
15
+
16
+ Hoe.new(PKG_NAME, PKG_VERSION) do |p|
17
+ p.rubyforge_name = 'gjastrab' # if different than lowercase project name
18
+ p.developer('Greg Jastrab', 'gjastrab.dev@gmail.com')
19
+ p.name = PKG_NAME
20
+ p.version = PKG_VERSION
21
+ #p.platform = Gem::Platform::RUBY
22
+ p.author = "Greg Jastrab"
23
+ p.email = "gjastrab.dev@gmail.com"
24
+ p.description = %q(An ANT-based PureMVC generator.)
25
+ p.summary = p.description # More details later??
26
+ p.remote_rdoc_dir = PKG_NAME # Release to /PKG_NAME
27
+ # p.changes = p.paragraphs_of('CHANGELOG', 0..1).join("\n\n")
28
+ p.extra_deps << ["cmdparse", ">= 2.0.2"]
29
+ p.need_zip = true
30
+ p.need_tar = false
31
+ end
32
+
33
+ # vim: syntax=Ruby
data/bin/puremvc-gen ADDED
@@ -0,0 +1,24 @@
1
+ #!/usr/bin/env ruby
2
+ require 'pure_m_v_c_gen'
3
+
4
+ include PureMVCGen::Commands
5
+
6
+ PMVC_GEN_HOME = File.join(File.dirname(__FILE__), '..', 'conf')
7
+ BUILDFILE = File.join(PMVC_GEN_HOME, 'build.xml')
8
+
9
+ def call_ant(args='')
10
+ system "ant -f #{BUILDFILE} -Dpmvcgen.dir=#{PMVC_GEN_HOME} -Dbasedir=#{Dir.pwd} #{args}"
11
+ end
12
+
13
+ cmd = CmdParse::CommandParser.new(true, true)
14
+ cmd.program_name = "puremvc-gen "
15
+ cmd.program_version = PureMVCGen::Version::ARRAY
16
+
17
+ cmd.add_command(CmdParse::HelpCommand.new)
18
+ cmd.add_command(CmdParse::VersionCommand.new)
19
+
20
+ cmd.add_command(CheckCommand.new)
21
+ cmd.add_command(InitializeCommand.new)
22
+ cmd.add_command(NewCommand.new)
23
+
24
+ cmd.parse
data/conf/build.xml ADDED
@@ -0,0 +1,381 @@
1
+ <?xml version="1.0"?>
2
+ <project default="info">
3
+
4
+ <property environment="env" />
5
+
6
+ <!-- ********************** PROPERTY INITIALIZATION TASKS ********************** -->
7
+
8
+ <target name="set-pmvc-gen-conditions">
9
+ <condition property="pmvcgen.home.set">
10
+ <isset property="env.PMVC_GEN_HOME" />
11
+ </condition>
12
+ <condition property="pmvcgen.dir.set">
13
+ <isset property="pmvcgen.dir" />
14
+ </condition>
15
+ <condition property="in.pmvcgen.dir">
16
+ <and>
17
+ <available file="config" />
18
+ <available file="config/pmvcgen.properties" />
19
+ <available file="config/pmvcgen.log.properties" />
20
+ </and>
21
+ </condition>
22
+ </target>
23
+
24
+ <target name="set-project-conditions">
25
+ <condition property="proj.dir.set">
26
+ <isset property="proj.dir" />
27
+ </condition>
28
+ <condition property="proj.properties.available">
29
+ <available file="proj.properties" />
30
+ </condition>
31
+ </target>
32
+
33
+ <target name="read-properties" description="Reads in property files in at least an obtrusive way as possible."
34
+ depends="set-pmvc-gen-conditions,pmvc-gen-properties,set-project-conditions,project-properties">
35
+ <echo>Read in PureMVCGen and project properties.</echo>
36
+ </target>
37
+
38
+ <target name="pmvc-gen-properties" description="Determines PureMVCGen properties."
39
+ depends="pmvc-gen-properties-from-env-home,pmvc-gen-properties-from-pmvcgen-dir,pmvc-gen-properties-from-within-pmvcgen-dir">
40
+ <echo>PureMVCGen Properties have been set.</echo>
41
+ </target>
42
+
43
+ <target name="pmvc-gen-properties-from-env-home" if="pmvcgen.home.set">
44
+ <condition property="pmvcgen.home.valid">
45
+ <and>
46
+ <available file="${env.PMVC_GEN_HOME}" />
47
+ <available file="${env.PMVC_GEN_HOME}/config" />
48
+ <available file="${env.PMVC_GEN_HOME}/config/pmvcgen.properties" />
49
+ <available file="${env.PMVC_GEN_HOME}/config/pmvcgen.log.properties" />
50
+ </and>
51
+ </condition>
52
+ <fail message="PMVC_GEN_HOME is not set to a valid directory." unless="pmvcgen.home.valid" />
53
+ <property file="${env.PMVC_GEN_HOME}/config/pmvcgen.properties" />
54
+ <property file="${env.PMVC_GEN_HOME}/config/pmvcgen.log.properties" />
55
+ <property name="pmvcgen.dir" value="${env.PMVC_GEN_HOME}" />
56
+ </target>
57
+
58
+ <target name="pmvc-gen-properties-from-pmvcgen-dir" if="pmvcgen.dir.set">
59
+ <condition property="pmvcgen.dir.valid">
60
+ <and>
61
+ <available file="${pmvcgen.dir}" />
62
+ <available file="${pmvcgen.dir}/config" />
63
+ <available file="${pmvcgen.dir}/config/pmvcgen.properties" />
64
+ <available file="${pmvcgen.dir}/config/pmvcgen.log.properties" />
65
+ </and>
66
+ </condition>
67
+ <fail message="The pmvcgen.dir is not pointing to a valid PureMVCGen directory." unless="pmvcgen.dir.valid" />
68
+ <property file="${pmvcgen.dir}/config/pmvcgen.properties" />
69
+ <property file="${pmvcgen.dir}/config/pmvcgen.log.properties" />
70
+ </target>
71
+
72
+ <target name="pmvc-gen-properties-from-within-pmvcgen-dir" if="in.pmvcgen.dir">
73
+ <property file="config/pmvcgen.properties" />
74
+ <property file="config/pmvcgen.log.properties" />
75
+ </target>
76
+
77
+ <target name="project-properties" description="Determines project properties."
78
+ depends="project-properties-from-project-dir,project-properties-from-basedir">
79
+ </target>
80
+
81
+ <target name="project-properties-from-project-dir" if="proj.dir.set">
82
+ <condition property="proj.dir.valid">
83
+ <and>
84
+ <available file="${proj.dir}" />
85
+ <available file="${proj.dir}/proj.properties" />
86
+ </and>
87
+ </condition>
88
+ <fail message="The proj.dir (${proj.dir}) either doesn't exist or it doesn't contain a proj.properties file!"
89
+ unless="proj.dir.valid" />
90
+ <property file="${proj.dir}/proj.properties" />
91
+ <property file="${proj.dir}/author.properties" />
92
+ </target>
93
+
94
+ <target name="project-properties-from-basedir" if="proj.properties.available">
95
+ <property file="proj.properties" />
96
+ <property file="${proj.dir}/author.properties" />
97
+ </target>
98
+
99
+ <target name="validate-properties" description="Ensures all required properties have been set"
100
+ depends="read-properties">
101
+ <!-- Validate PureMVCGen Properties -->
102
+ <condition property="pmvcgen.properties.are.set">
103
+ <and>
104
+ <isset property="model.dir" />
105
+ <isset property="view.dir" />
106
+ <isset property="controller.dir" />
107
+ <isset property="events.dir" />
108
+ <isset property="templates.dir" />
109
+ </and>
110
+ </condition>
111
+ <fail unless="pmvcgen.properties.are.set">
112
+ <![CDATA[ERROR:
113
+ All required PureMVCGen properties have not been set.
114
+ Please verify you are either:
115
+ 1. Setting the PMVC_GEN_HOME environment variable to point to the PureMVCGen directory
116
+ 2. Setting the pmvcgen.dir property
117
+ 3. Running this build file from within the PureMVCGen directory
118
+ Required PureMVCGen properties are:
119
+ -model.dir => name for the model directory ("model" by default)
120
+ -view.dir => name for the view directory ("view" by default)
121
+ -controller.dir => name for the controller directory ("controller" by default)
122
+ -events.dir => name for the events directory ("events" by default)]]>
123
+ </fail>
124
+ <!-- Validate Project Properties -->
125
+ <condition property="project.properties.are.set">
126
+ <and>
127
+ <isset property="app.prefix" />
128
+ <isset property="project.name" />
129
+ <isset property="core.namespace" />
130
+ <isset property="core.dir" />
131
+ <isset property="pmvc.flavor" />
132
+ </and>
133
+ </condition>
134
+ <fail unless="project.properties.are.set">
135
+ <![CDATA[ERROR:
136
+ All required project properties have not been set.
137
+ Please verify you are including the necessary .properties files.
138
+ Required project properties are:
139
+ -app.prefix => Prefix you'd like prepended to your Facade and Application Mediator
140
+ -project.name => Name of the project which will be used to create the main MXML file
141
+ -core.namespace => Core package structure (where PureMVC directories and Facade will be placed)
142
+ Example: com.slslabs.puremvc.generator
143
+ -core.dir => Directory location of core package structure. This should just be the core.namespace with the .'s replaced with /'s
144
+ Example: com/slslabs/puremvc/generator
145
+ -pmvc.flavor => standard / multicore]]>
146
+ </fail>
147
+ <property name="all.properties.valid" value="true" />
148
+ <echo>All properties have been read in and verified.</echo>
149
+ </target>
150
+
151
+ <target name="init" description="Initializes project environment."
152
+ depends="validate-properties">
153
+ <!-- determine standard vs multicore -->
154
+ <property name="event.template" value="${pmvcgen.dir}/${templates.dir}/Event.tpl" />
155
+ <property name="app.template" value="${pmvcgen.dir}/${templates.dir}/${pmvc.flavor}/Application.tpl" />
156
+ <property name="facade.template" value="${pmvcgen.dir}/${templates.dir}/${pmvc.flavor}/Facade.tpl" />
157
+ <property name="macro.template" value="${pmvcgen.dir}/${templates.dir}/${pmvc.flavor}/MacroCommand.tpl" />
158
+ <property name="mediator.template" value="${pmvcgen.dir}/${templates.dir}/${pmvc.flavor}/Mediator.tpl" />
159
+ <property name="proxy.template" value="${pmvcgen.dir}/${templates.dir}/${pmvc.flavor}/Proxy.tpl" />
160
+ <property name="simple.template" value="${pmvcgen.dir}/${templates.dir}/${pmvc.flavor}/SimpleCommand.tpl" />
161
+
162
+ <tstamp>
163
+ <format property="today" pattern="MM/dd/yyyy" />
164
+ </tstamp>
165
+ </target>
166
+
167
+ <target name="info" description="Outputs the current PureMVC classes in the project.">
168
+ <echo>Basedir is: ${basedir}</echo>
169
+ </target>
170
+
171
+ <target name="strip-comments" description="Strips the //pmvcgen: comments from all files."
172
+ depends="init">
173
+ </target>
174
+
175
+ <target name="new-pmvc" description="Creates the core project directories, generates the Facade, StartupCommand, and main MXML file."
176
+ depends="init,create-dirs,create-main-mxml,create-facade,create-startup-command,create-prepare-actors-command,create-application-mediator">
177
+ </target>
178
+
179
+ <target name="create-dirs" description="Creates the core project directories.">
180
+ <echo>Creating PureMVC Core project directory: ${core.dir}</echo>
181
+ <mkdir dir="${core.dir}" />
182
+ <echo>Creating PureMVC directories in ${core.dir}</echo>
183
+ <mkdir dir="${core.dir}/${model.dir}" />
184
+ <mkdir dir="${core.dir}/${view.dir}" />
185
+ <mkdir dir="${core.dir}/${controller.dir}/components" />
186
+ <mkdir dir="${core.dir}/${events.dir}" />
187
+ </target>
188
+
189
+ <target name="set-filters">
190
+ <filterset id="common.filters">
191
+ <filter token="app.prefix" value="${app.prefix}" />
192
+ <filter token="project.name" value="${project.name}" />
193
+ <filter token="namespace" value="${core.namespace}" />
194
+ <filter token="model" value="${model.dir}" />
195
+ <filter token="view" value="${view.dir}" />
196
+ <filter token="ctrls" value="${controller.dir}" />
197
+ <filter token="author.name" value="${author.name}" />
198
+ <filter token="author.email" value=" &lt;${author.email}&gt;" />
199
+ <filter token="version" value="${version}" />
200
+ <filter token="today" value="${today}" />
201
+ </filterset>
202
+ </target>
203
+
204
+ <!-- ********************** GENERATION TASKS ********************** -->
205
+
206
+ <target name="create-main-mxml" depends="init,set-filters"
207
+ description="Creates the main MXML class, initializing the Facade and sending the startup command.">
208
+ <echo>Creating main MXML for PureMVC project.</echo>
209
+ <copy file="${app.template}"
210
+ toFile="${project.name}.mxml">
211
+ <filterset refid="common.filters" />
212
+ </copy>
213
+ </target>
214
+
215
+ <target name="create-event" depends="init,set-filters"
216
+ description="Creates a new event class.">
217
+ <echo>${log.gen.event}</echo>
218
+ <input message="Specify the name of the new event class you wish to create:" addproperty="event.class.name" />
219
+ <copy file="${event.template}"
220
+ toFile="${core.dir}/${events.dir}/${event.class.name}.as">
221
+ <filterset refid="common.filters" />
222
+ <filterset>
223
+ <filter token="event.name" value="${event.class.name}" />
224
+ </filterset>
225
+ </copy>
226
+ </target>
227
+
228
+ <target name="create-facade" depends="init,set-filters" description="Creates the facade class.">
229
+ <echo>${log.gen.facade}</echo>
230
+ <copy file="${facade.template}"
231
+ toFile="${core.dir}/${app.prefix}Facade.as">
232
+ <filterset refid="common.filters" />
233
+ </copy>
234
+ </target>
235
+
236
+ <target name="create-macro-command" depends="init,prompt-command-name,prompt-command-const,set-filters"
237
+ description="Creates a MacroCommand">
238
+ <echo>${log.gen.macro.command}</echo>
239
+ <copy file="${macro.template}"
240
+ toFile="${core.dir}/${controller.dir}/${cmd.name}Command.as">
241
+ <filterset refid="common.filters" />
242
+ <filterset>
243
+ <filter token="command.name" value="${cmd.name}" />
244
+ </filterset>
245
+ </copy>
246
+ <replace file="${core.dir}/${app.prefix}Facade.as"
247
+ token="//pmvcgen:register commands">
248
+ <replacevalue><![CDATA[registerCommand(/* CONST FOR COMMAND */, PMVCGenCommand);
249
+ //pmvcgen:register commands]]></replacevalue>
250
+ <replacefilter token="PMVCGenCommand" value="${cmd.name}Command" />
251
+ <replacefilter token="/* CONST FOR COMMAND */" value="${cmd.const}" />
252
+ </replace>
253
+ </target>
254
+
255
+ <target name="create-simple-command" depends="init,prompt-command-name,set-filters"
256
+ description="Creates a SimpleCommand">
257
+ <echo>${log.gen.simple.command}</echo>
258
+ <copy file="${simple.template}"
259
+ toFile="${core.dir}/${controller.dir}/${cmd.name}Command.as">
260
+ <filterset refid="common.filters" />
261
+ <filterset>
262
+ <filter token="command.name" value="${cmd.name}" />
263
+ </filterset>
264
+ </copy>
265
+ </target>
266
+
267
+ <target name="create-mediator" depends="init,prompt-mediator-name,set-filters"
268
+ description="Creates a Mediator">
269
+ <echo>${log.gen.mediator}</echo>
270
+ <copy file="${mediator.template}"
271
+ toFile="${core.dir}/${view.dir}/${mediator.name}Mediator.as">
272
+ <filterset refid="common.filters" />
273
+ <filterset>
274
+ <filter token="facade" value="${app.prefix}Facade" />
275
+ <filter token="mediator.name" value="${mediator.name}" />
276
+ </filterset>
277
+ </copy>
278
+ </target>
279
+
280
+ <target name="create-proxy" depends="init,prompt-proxy-name,set-filters"
281
+ description="Creates a Proxy">
282
+ <echo>${log.gen.proxy}</echo>
283
+ <copy file="${proxy.template}"
284
+ toFile="${core.dir}/${model.dir}/${proxy.name}Proxy.as">
285
+ <filterset refid="common.filters" />
286
+ <filterset>
287
+ <filter token="facade" value="${app.prefix}Facade" />
288
+ <filter token="proxy.name" value="${proxy.name}" />
289
+ </filterset>
290
+ </copy>
291
+ </target>
292
+
293
+ <target name="create-startup-command" depends="init" description="Creates the StartupCommand">
294
+ <echo>${log.gen.startup.command}</echo>
295
+ <antcall target="create-macro-command">
296
+ <param name="cmd.name" value="Startup" />
297
+ <param name="cmd.const" value="STARTUP" />
298
+ </antcall>
299
+ <replace file="${core.dir}/${controller.dir}/StartupCommand.as"
300
+ token="//pmvcgen:import commands">
301
+ <replacevalue><![CDATA[import @namespace@.@controller.dir@.PrepareActorsCommand;
302
+ //pmvcgen:import commands]]></replacevalue>
303
+ <replacefilter token="//pmvcgen:chain simple commands" value="addSubCommand(PrepareActorsCommand);" />
304
+ <replacefilter token="@namespace@" value="${core.namespace}" />
305
+ <replacefilter token="@controller.dir@" value="${controller.dir}" />
306
+ </replace>
307
+ <!--replace file="${core.dir}/${app.prefix}Facade.as"
308
+ token="/* CONST FOR COMMAND */" value="STARTUP" /-->
309
+ </target>
310
+
311
+ <target name="create-prepare-actors-command" depends="init" description="Creates the PrepareActorsCommand">
312
+ <echo>${log.gen.prepare.command}</echo>
313
+ <antcall target="create-simple-command">
314
+ <param name="cmd.name" value="PrepareActors" />
315
+ </antcall>
316
+ <replace file="${core.dir}/${controller.dir}/PrepareActorsCommand.as"
317
+ token="//pmvcgen:insert imports">
318
+ <replacevalue><![CDATA[import @namespace@.@model.dir@.*;
319
+ import @namespace@.@view.dir@.*;]]></replacevalue>
320
+ <replacefilter token="@namespace@" value="${core.namespace}" />
321
+ <replacefilter token="@model.dir@" value="${model.dir}" />
322
+ <replacefilter token="@view.dir@" value="${view.dir}" />
323
+ </replace>
324
+ <replace file="${core.dir}/${controller.dir}/PrepareActorsCommand.as"
325
+ token="//pmvcgen:insert command logic">
326
+ <replacevalue><![CDATA[//pmvcgen:register proxies
327
+
328
+ //pmvcgen:register mediators]]></replacevalue>
329
+ </replace>
330
+ </target>
331
+
332
+ <target name="create-application-mediator" depends="init" description="Creates the Application mediator.">
333
+ <echo></echo>
334
+ <antcall target="create-mediator">
335
+ <param name="mediator.name" value="${app.prefix}" />
336
+ </antcall>
337
+ <replace file="${core.dir}/${view.dir}/${app.prefix}Mediator.as">
338
+ <replacefilter token="YOURVIEWNAME" value="app" />
339
+ <replacefilter token="YOURVIEWOBJ" value="${project.name}" />
340
+ </replace>
341
+ </target>
342
+
343
+ <!-- ********************** PROMPT TASKS ********************** -->
344
+
345
+ <target name="prompt-command-name" unless="cmd.name"
346
+ description="Prompts the user to enter a command name, unless cmd.name is already set.">
347
+ <input message="${log.prompt.command}" addproperty="cmd.name" />
348
+ <condition property="do.abort">
349
+ <length string="${cmd.name}" length="0" />
350
+ </condition>
351
+ <fail message="${log.fail.command.name}" if="do.abort" />
352
+ </target>
353
+
354
+ <target name="prompt-command-const" unless="cmd.const"
355
+ description="Prompts the user to enter a command constant, unless cmd.const is already set.">
356
+ <input message="${log.prompt.command.constant}" addproperty="cmd.const" />
357
+ <condition property="do.abort">
358
+ <length string="${cmd.const}" length="0" />
359
+ </condition>
360
+ <fail message="${log.fail.command.constant}" if="do.abort" />
361
+ </target>
362
+
363
+ <target name="prompt-mediator-name" unless="mediator.name"
364
+ description="Prompts the user to enter a mediator name, unless mediator.name is already set.">
365
+ <input message="${log.prompt.mediator}" addproperty="mediator.name" />
366
+ <condition property="do.abort">
367
+ <length string="${mediator.name}" length="0" />
368
+ </condition>
369
+ <fail message="${log.fail.mediator.name}" if="do.abort" />
370
+ </target>
371
+
372
+ <target name="prompt-proxy-name" unless="proxy.name"
373
+ description="Prompts the user to enter a proxy name, unless proxy.name is already set.">
374
+ <input message="${log.prompt.proxy}" addproperty="proxy.name" />
375
+ <condition property="do.abort">
376
+ <length string="${proxy.name}" length="0" />
377
+ </condition>
378
+ <fail message="${log.fail.proxy.name}" if="do.abort" />
379
+ </target>
380
+
381
+ </project>
@@ -0,0 +1,25 @@
1
+ ##### =============== ERROR MESSAGES =============== #####
2
+ log.invalid.properties = All required properties have not been set. Please verify you are including the necessary .properties files.
3
+ log.no.core.namespace = core.namespace is not set! The PureMVC-Gen convention is to specify this in a proj.properties file.
4
+ log.no.pmvcgen.home = The PMVC_GEN_HOME environment variable is not set! Be sure to set it and point it to the location of your PureMVCGen directory.
5
+
6
+ ##### =============== GENERATION MESSAGES =============== #####
7
+ log.gen.facade = Creating PureMVC Facade class: ${core.namespace}.${app.prefix}Facade
8
+ log.gen.macro.command = Creating PureMVC MacroCommand class => ${cmd.name}
9
+ log.gen.simple.command = Creating PureMVC SimpleCommand class => ${cmd.name}
10
+ log.gen.startup.command = Creating PureMVC StartupCommand
11
+ log.gen.prepare.command = Creating PureMVC PrepareActorsCommand
12
+ log.gen.mediator.command = Creating PureMVC Mediator class => ${mediator.name}
13
+ log.gen.proxy.command = Creating PureMVC Proxy class => ${proxy.name}
14
+
15
+ ##### =============== PROMPT MESSAGES =============== #####
16
+ log.prompt.command.name = Enter the name of the command you'd like to create. (i.e., <YourCommandName> generates ==> <YourCommandName>Command.as)
17
+ log.prompt.command.constant = Enter the name of the constant to be associated with the command.
18
+ log.prompt.mediator.name = Enter the name of the mediator you'd like to create. (i.e., <YourMediatorName> generates ==> <YourMediatorName>Mediator.as)
19
+ log.prompt.proxy.name = Enter the name of the proxy you'd like to create. (i.e., <YourProxyName> generates ==> <YourProxyName>Proxy.as)
20
+
21
+ ##### =============== PROMPT MESSAGES =============== #####
22
+ log.fail.command.name = You must enter a name for the command!
23
+ log.fail.command.constant = You must enter a constant for the comman!
24
+ log.fail.mediator.name = You must enter a name for the mediator!
25
+ log.fail.proxy.name = You must enter a name for the proxy!
@@ -0,0 +1,7 @@
1
+ ##### =============== PureMVC GEN PROPERTIES =============== #####
2
+ model.dir = model
3
+ view.dir = view
4
+ controller.dir = controller
5
+ events.dir = events
6
+
7
+ templates.dir = templates
@@ -0,0 +1,2 @@
1
+ author.name = Greg Jastrab
2
+ author.email = greg@smartlogicsolutions.com
@@ -0,0 +1,9 @@
1
+ ##### =============== PROJECT PROPERTIES =============== #####
2
+ app.prefix = PMVCGen
3
+ project.name = PMVCGenDemo
4
+ core.namespace = net.slsdev.utils.pmvc.demo
5
+ core.dir = net/slsdev/utils/pmvc/demo
6
+ version = 1.0
7
+
8
+ ##### =============== PureMVC PROPERTIES =============== #####
9
+ pmvc.flavor = standard
Binary file
@@ -0,0 +1,55 @@
1
+ @copy@
2
+ package @namespace@.@events@ {
3
+
4
+ import flash.events.Event;
5
+
6
+ /**
7
+ * Event description here.
8
+ *
9
+ * @langversion ActionScript 3.0
10
+ * @author @author.name@ @author.email@
11
+ * @date @today@
12
+ * @version @version@
13
+ */
14
+ public class @event.name@ extends Event {
15
+
16
+ /* --- Variables --- */
17
+
18
+ //pmvcgen:varconsts
19
+
20
+ /* === Variables === */
21
+
22
+ /* --- Constructor --- */
23
+
24
+ public function @event.name@(type:String) {
25
+ super(type);
26
+ }
27
+
28
+ /* === Constructor === */
29
+
30
+ /* --- Functions --- */
31
+
32
+ /**
33
+ * Clones the @event.name@.
34
+ *
35
+ * @return Duplicates an instance of an Event subclass
36
+ */
37
+ public function clone():Event {
38
+ var evt:@event.name@ = new @event.name@(type);
39
+ return evt;
40
+ }
41
+
42
+ /**
43
+ * Formats the event to a string.
44
+ *
45
+ * @return Returns a string containing all the properties of the Event object
46
+ */
47
+ override public function toString():String {
48
+ return formatToString("@event.name@", "type");
49
+ }
50
+
51
+ /* === Functions === */
52
+
53
+ }
54
+
55
+ }
@@ -0,0 +1,13 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <mx:Application xmlns:mx="http://www.adobe.com/2006/mxml"
3
+ creationComplete="facade.startup(this)">
4
+
5
+ <mx:Script>
6
+ <![CDATA[
7
+ import @namespace@.@app.prefix@Facade;
8
+
9
+ private var facade:@app.prefix@Facade = @app.prefix@Facade.getInstance();
10
+ ]]>
11
+ </mx:Script>
12
+
13
+ </mx:Application>
@@ -0,0 +1,51 @@
1
+ package @namespace@ {
2
+
3
+ import @namespace@.@ctrls@.*;
4
+
5
+ import org.puremvc.as3.patterns.facade.Facade;
6
+
7
+ /**
8
+ * Application Facade.
9
+ *
10
+ * @langversion ActionScript 3.0
11
+ * @author @author.name@ @author.email@
12
+ * @date @today@
13
+ * @version @version@
14
+ */
15
+ public class @app.prefix@Facade extends Facade {
16
+
17
+ /* --- Variables --- */
18
+
19
+ public static const STARTUP:String = "startup";
20
+
21
+ //pmvcgen:varconsts
22
+
23
+ /* === Variables === */
24
+
25
+ /* --- Functions --- */
26
+
27
+ public static function getInstance():@app.prefix@Facade {
28
+ if(instance == null)
29
+ instance = new @app.prefix@Facade();
30
+ return instance as @app.prefix@Facade;
31
+ }
32
+
33
+ /**
34
+ * Starts up @project.name@.
35
+ *
36
+ * @param app reference to the application
37
+ */
38
+ public function startup(app:@project.name@):void {
39
+ sendNotification(STARTUP, app);
40
+ }
41
+
42
+ override protected function initializeController():void {
43
+ super.initializeController();
44
+ //pmvcgen:register commands
45
+ }
46
+
47
+ /* === Functions === */
48
+
49
+ }
50
+
51
+ }
@@ -0,0 +1,24 @@
1
+ package @namespace@.@ctrls@ {
2
+
3
+ //pmvcgen:import commands
4
+
5
+ import org.puremvc.as3.interfaces.INotification;
6
+ import org.puremvc.as3.patterns.command.MacroCommand;
7
+
8
+ /**
9
+ * @command.name@ command.
10
+ *
11
+ * @langversion ActionScript 3.0
12
+ * @author @author.name@ @author.email@
13
+ * @date @today@
14
+ * @version @version@
15
+ */
16
+ public class @command.name@Command extends MacroCommand {
17
+
18
+ override protected function initializeMacroCommand():void {
19
+ //pmvcgen:chain simple commands
20
+ }
21
+
22
+ }
23
+
24
+ }
@@ -0,0 +1,57 @@
1
+ package @namespace@.@view@ {
2
+
3
+ import @namespace@.@facade@;
4
+
5
+ import org.puremvc.as3.interfaces.INotification;
6
+ import org.puremvc.as3.patterns.mediator.Mediator;
7
+
8
+ /**
9
+ * @mediator.name@ mediator.
10
+ *
11
+ * @langversion ActionScript 3.0
12
+ * @author @author.name@ @author.email@
13
+ * @date @today@
14
+ * @version @version@
15
+ */
16
+ public class @mediator.name@Mediator extends Mediator {
17
+
18
+ /* --- Variables --- */
19
+
20
+ public static const NAME:String = "@mediator.name@Mediator";
21
+
22
+ /* === Variables === */
23
+
24
+ /* --- Constructor --- */
25
+
26
+ /**
27
+ * Constructor.
28
+ *
29
+ * @param viewComponent view component for mediator
30
+ */
31
+ public function @mediator.name@Mediator(viewComponent:Object) {
32
+ super(NAME, viewComponent);
33
+ }
34
+
35
+ /* === Constructor === */
36
+
37
+ /* --- Functions --- */
38
+
39
+ override public function handleNotification(note:INotification):void {
40
+ }
41
+
42
+ override public function listNotificationInterests():Array {
43
+ return [
44
+ ];
45
+ }
46
+
47
+ /* === Functions === */
48
+
49
+ /* --- Public Accessors --- */
50
+
51
+ public function get YOURVIEWNAME():YOURVIEWOBJ { return viewComponent as YOURVIEWOBJ; }
52
+
53
+ /* === Public Accessors === */
54
+
55
+ }
56
+
57
+ }
@@ -0,0 +1,50 @@
1
+ package @namespace@.@model@ {
2
+
3
+ import @namespace@.@facade@;
4
+
5
+ import org.puremvc.as3.patterns.proxy.Proxy;
6
+
7
+ /**
8
+ * @proxy.name@ proxy.
9
+ *
10
+ * @langversion ActionScript 3.0
11
+ * @author @author.name@ @author.email@
12
+ * @date @today@
13
+ * @version @version@
14
+ */
15
+ public class @proxy.name@Proxy extends Proxy {
16
+
17
+ /* --- Variables --- */
18
+
19
+ public static const NAME:String = "@proxy.name@Proxy";
20
+
21
+ /* === Variables === */
22
+
23
+ /* --- Constructor --- */
24
+
25
+ /**
26
+ * Constructor.
27
+ *
28
+ * @param data data model for proxy
29
+ */
30
+ public function @proxy.name@Proxy(data:Object=null) {
31
+ super(NAME, data);
32
+ }
33
+
34
+ /* === Constructor === */
35
+
36
+ /* --- Functions --- */
37
+
38
+ //addfunctions
39
+
40
+ /* === Functions === */
41
+
42
+ /* --- Public Accessors --- */
43
+
44
+ public function get dataObject():Object { return data; }
45
+
46
+ /* === Public Accessors === */
47
+
48
+ }
49
+
50
+ }
@@ -0,0 +1,24 @@
1
+ package @namespace@.@ctrls@ {
2
+
3
+ //pmvcgen:insert imports
4
+
5
+ import org.puremvc.as3.interfaces.INotification;
6
+ import org.puremvc.as3.patterns.command.SimpleCommand;
7
+
8
+ /**
9
+ * @command.name@ command.
10
+ *
11
+ * @langversion ActionScript 3.0
12
+ * @author @author.name@ @author.email@
13
+ * @date @today@
14
+ * @version @version@
15
+ */
16
+ public class @command.name@Command extends SimpleCommand {
17
+
18
+ override public function execute(note:INotification):void {
19
+ //pmvcgen:insert command logic
20
+ }
21
+
22
+ }
23
+
24
+ }
@@ -0,0 +1,34 @@
1
+ module PureMVCGen
2
+ class AntChecker
3
+
4
+ # Determines if ANT is installed on the system
5
+ def self.has_ant_installed?
6
+ AntChecker.find_in_path("ant")
7
+ end
8
+
9
+ # Searches the path, looking for the given utility. If an executable
10
+ # file is found that matches the parameter, this returns true.
11
+ def self.find_in_path(utility)
12
+ path = (ENV['PATH'] || "").split(File::PATH_SEPARATOR)
13
+ suffixes = self.on_windows? ? self.windows_executable_extensions : [""]
14
+
15
+ path.each do |dir|
16
+ suffixes.each do |sfx|
17
+ file = File.join(dir, utility + sfx)
18
+ return true if File.executable?(file)
19
+ end
20
+ end
21
+
22
+ false
23
+ end
24
+
25
+ def self.on_windows?
26
+ RUBY_PLATFORM =~ /mswin|mingw/
27
+ end
28
+
29
+ def self.windows_executable_extensions
30
+ %w(.exe .bat .com .cmd)
31
+ end
32
+
33
+ end
34
+ end
@@ -0,0 +1,16 @@
1
+ module PureMVCGen
2
+ module Commands
3
+ class CheckCommand < CmdParse::Command
4
+
5
+ def initialize
6
+ super('check', false)
7
+ self.short_desc = "Validates that all required property settings are current detected"
8
+ end
9
+
10
+ def execute(args)
11
+ call_ant "validate-properties"
12
+ end
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,14 @@
1
+ module CmdParse
2
+ class Command
3
+ # injects our common options
4
+ def default_options(&block)
5
+ CmdParse::OptionParserWrapper.new do |opt|
6
+ opt.on("-h", "--help") do
7
+ self.show_help
8
+ exit
9
+ end
10
+ yield(opt)
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,16 @@
1
+ module PureMVCGen
2
+ module Commands
3
+ class InitializeCommand < CmdParse::Command
4
+
5
+ def initialize
6
+ super('init', false)
7
+ self.short_desc = "Initializes the current working directory with a new PureMVC project"
8
+ end
9
+
10
+ def execute(args)
11
+ call_ant "new-pmvc"
12
+ end
13
+
14
+ end
15
+ end
16
+ end
@@ -0,0 +1,86 @@
1
+ module PureMVCGen
2
+ module Commands
3
+ class NewCommand < CmdParse::Command
4
+
5
+ def initialize
6
+ super('new', true)
7
+ self.short_desc = "Command to generate PureMVC classes"
8
+
9
+ # add sub commands
10
+ self.add_command(CreateCommand.new)
11
+ self.add_command(CreateMediator.new)
12
+ self.add_command(CreateProxy.new)
13
+ end
14
+
15
+ class CreateCommand < CmdParse::Command
16
+
17
+ def initialize
18
+ super('command', false)
19
+ @type = :simple
20
+ self.short_desc = "Creates a simple or macro command (defaults to simple)."
21
+ self.description = <<-EOL
22
+ Generates a simple or macro command.
23
+ Generating a simple command is the default behavior, unless the macro switch is passed:
24
+ -m or --macro
25
+
26
+ If no other switches are passed, the ANT script will prompt for a command name and constant,
27
+ however these may be passed on the command line with the -n (or --name) and -c (or --const) switches.
28
+ EOL
29
+ self.options = default_options do |opt|
30
+ opt.on("-m", "--macro", "Specifies the command is a MacroCommand") { @type = :macro }
31
+ opt.on("-n", "--name COMMAND_NAME", "Specifies the name for the command") { |name| @command_name = name }
32
+ opt.on("-c", "--const COMMAND_CONSTANT", "Specifies the constant to use for the command") { |const| @command_const = const }
33
+ end
34
+ end
35
+
36
+ def execute(args)
37
+ cmd = ""
38
+ cmd << "-Dcmd.name=#{@command_name} " unless @command_name.nil?
39
+ cmd << "-Dcmd.const=#{@command_const} " unless @command_const.nil?
40
+ cmd << "#{@type == :simple ? "create-simple-command" : "create-macro-command"}"
41
+ call_ant cmd
42
+ end
43
+
44
+ end
45
+
46
+ class CreateMediator < CmdParse::Command
47
+
48
+ def initialize
49
+ super('mediator', false)
50
+ self.short_desc = "Creates a new mediator."
51
+ self.options = default_options do |opt|
52
+ opt.on("-n", "--name MEDIATOR_NAME", "Specifies the name for the mediator") { |name| @mediator_name = name }
53
+ end
54
+ end
55
+
56
+ def execute(args)
57
+ cmd = ""
58
+ cmd << "-Dmediator.name=#{@mediator_name} " unless @mediator_name.nil?
59
+ cmd << "create-mediator"
60
+ call_ant cmd
61
+ end
62
+
63
+ end
64
+
65
+ class CreateProxy < CmdParse::Command
66
+
67
+ def initialize
68
+ super('proxy', false)
69
+ self.short_desc = "Creates a new proxy."
70
+ self.options = default_options do |opt|
71
+ opt.on("-n", "--name PROXY_NAME", "Specifies the name for the proxy") { |name| @proxy_name = name }
72
+ end
73
+ end
74
+
75
+ def execute(args)
76
+ cmd = ""
77
+ cmd << "-Dproxy.name=#{@proxy_name} " unless @proxy_name.nil?
78
+ cmd << "create-proxy"
79
+ call_ant cmd
80
+ end
81
+
82
+ end
83
+
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,21 @@
1
+ module PureMVCGen
2
+ module Version #:nodoc:
3
+ # A method for comparing versions of required modules. It expects two
4
+ # arrays of integers as parameters, the first being the minimum version
5
+ # required, and the second being the actual version available. It returns
6
+ # true if the actual version is at least equal to the required version.
7
+ def self.check(required, actual) #:nodoc:
8
+ required = required.map { |v| "%06d" % v }.join(".")
9
+ actual = actual.map { |v| "%06d" % v }.join(".")
10
+ return actual >= required
11
+ end
12
+
13
+ MAJOR = 0
14
+ MINOR = 1
15
+ TINY = 0
16
+
17
+ ARRAY = [MAJOR, MINOR, TINY]
18
+ STRING = ARRAY.join(".")
19
+ end
20
+ end
21
+
@@ -0,0 +1,23 @@
1
+ require 'rubygems'
2
+ require 'cmdparse'
3
+ require 'pure_m_v_c_gen/version'
4
+
5
+ PMVC_GEN_LIB = File.join(File.dirname(__FILE__), '..', 'lib', 'pure_m_v_c_gen')
6
+ require File.join(PMVC_GEN_LIB, 'ant_checker')
7
+
8
+ unless PureMVCGen::AntChecker.has_ant_installed?
9
+ err = <<-EOL
10
+ You must have ANT installed to run puremvc-gen.
11
+ Install it! ==> http://ant.apache.org
12
+ If you have it installed, ensure it is on your path.
13
+ EOL
14
+ puts err
15
+ exit 1
16
+ end
17
+
18
+ CMD_PATH = File.join(PMVC_GEN_LIB, 'commands')
19
+
20
+ require File.join(CMD_PATH, 'command_extensions')
21
+ require File.join(CMD_PATH, 'check_command')
22
+ require File.join(CMD_PATH, 'initialize_command')
23
+ require File.join(CMD_PATH, 'new_command')
@@ -0,0 +1,40 @@
1
+ # -*- encoding: utf-8 -*-
2
+
3
+ Gem::Specification.new do |s|
4
+ s.name = %q{puremvc-gen}
5
+ s.version = "0.1.0"
6
+
7
+ s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
8
+ s.authors = ["Greg Jastrab"]
9
+ s.date = %q{2008-12-05}
10
+ s.default_executable = %q{puremvc-gen}
11
+ s.description = %q{An ANT-based PureMVC generator.}
12
+ s.email = %q{gjastrab.dev@gmail.com}
13
+ s.executables = ["puremvc-gen"]
14
+ s.extra_rdoc_files = ["History.txt", "Manifest.txt", "README.txt"]
15
+ s.files = ["History.txt", "Manifest.txt", "README.txt", "Rakefile", "bin/puremvc-gen", "conf/build.xml", "conf/config/pmvcgen.log.properties", "conf/config/pmvcgen.properties", "conf/example/author.properties", "conf/example/proj.properties", "conf/templates/.DS_Store", "conf/templates/Event.tpl", "conf/templates/standard/Application.tpl", "conf/templates/standard/Facade.tpl", "conf/templates/standard/MacroCommand.tpl", "conf/templates/standard/Mediator.tpl", "conf/templates/standard/Proxy.tpl", "conf/templates/standard/SimpleCommand.tpl", "lib/pure_m_v_c_gen.rb", "lib/pure_m_v_c_gen/ant_checker.rb", "lib/pure_m_v_c_gen/commands/check_command.rb", "lib/pure_m_v_c_gen/commands/command_extensions.rb", "lib/pure_m_v_c_gen/commands/initialize_command.rb", "lib/pure_m_v_c_gen/commands/new_command.rb", "lib/pure_m_v_c_gen/version.rb", "puremvc-gen.gemspec", "test/test_pure_m_v_c_gen.rb"]
16
+ s.has_rdoc = true
17
+ s.homepage = %q{FIX (url)}
18
+ s.rdoc_options = ["--main", "README.txt"]
19
+ s.require_paths = ["lib"]
20
+ s.rubyforge_project = %q{gjastrab}
21
+ s.rubygems_version = %q{1.3.1}
22
+ s.summary = %q{An ANT-based PureMVC generator.}
23
+ s.test_files = ["test/test_pure_m_v_c_gen.rb"]
24
+
25
+ if s.respond_to? :specification_version then
26
+ current_version = Gem::Specification::CURRENT_SPECIFICATION_VERSION
27
+ s.specification_version = 2
28
+
29
+ if Gem::Version.new(Gem::RubyGemsVersion) >= Gem::Version.new('1.2.0') then
30
+ s.add_runtime_dependency(%q<cmdparse>, [">= 2.0.2"])
31
+ s.add_development_dependency(%q<hoe>, [">= 1.8.2"])
32
+ else
33
+ s.add_dependency(%q<cmdparse>, [">= 2.0.2"])
34
+ s.add_dependency(%q<hoe>, [">= 1.8.2"])
35
+ end
36
+ else
37
+ s.add_dependency(%q<cmdparse>, [">= 2.0.2"])
38
+ s.add_dependency(%q<hoe>, [">= 1.8.2"])
39
+ end
40
+ end
File without changes
metadata ADDED
@@ -0,0 +1,101 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: puremvc-gen
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ platform: ruby
6
+ authors:
7
+ - Greg Jastrab
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2008-12-05 00:00:00 -05:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: cmdparse
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: 2.0.2
24
+ version:
25
+ - !ruby/object:Gem::Dependency
26
+ name: hoe
27
+ type: :development
28
+ version_requirement:
29
+ version_requirements: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: 1.8.2
34
+ version:
35
+ description: An ANT-based PureMVC generator.
36
+ email: gjastrab.dev@gmail.com
37
+ executables:
38
+ - puremvc-gen
39
+ extensions: []
40
+
41
+ extra_rdoc_files:
42
+ - History.txt
43
+ - Manifest.txt
44
+ - README.txt
45
+ files:
46
+ - History.txt
47
+ - Manifest.txt
48
+ - README.txt
49
+ - Rakefile
50
+ - bin/puremvc-gen
51
+ - conf/build.xml
52
+ - conf/config/pmvcgen.log.properties
53
+ - conf/config/pmvcgen.properties
54
+ - conf/example/author.properties
55
+ - conf/example/proj.properties
56
+ - conf/templates/.DS_Store
57
+ - conf/templates/Event.tpl
58
+ - conf/templates/standard/Application.tpl
59
+ - conf/templates/standard/Facade.tpl
60
+ - conf/templates/standard/MacroCommand.tpl
61
+ - conf/templates/standard/Mediator.tpl
62
+ - conf/templates/standard/Proxy.tpl
63
+ - conf/templates/standard/SimpleCommand.tpl
64
+ - lib/pure_m_v_c_gen.rb
65
+ - lib/pure_m_v_c_gen/ant_checker.rb
66
+ - lib/pure_m_v_c_gen/commands/check_command.rb
67
+ - lib/pure_m_v_c_gen/commands/command_extensions.rb
68
+ - lib/pure_m_v_c_gen/commands/initialize_command.rb
69
+ - lib/pure_m_v_c_gen/commands/new_command.rb
70
+ - lib/pure_m_v_c_gen/version.rb
71
+ - puremvc-gen.gemspec
72
+ - test/test_pure_m_v_c_gen.rb
73
+ has_rdoc: true
74
+ homepage: FIX (url)
75
+ post_install_message:
76
+ rdoc_options:
77
+ - --main
78
+ - README.txt
79
+ require_paths:
80
+ - lib
81
+ required_ruby_version: !ruby/object:Gem::Requirement
82
+ requirements:
83
+ - - ">="
84
+ - !ruby/object:Gem::Version
85
+ version: "0"
86
+ version:
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ requirements:
89
+ - - ">="
90
+ - !ruby/object:Gem::Version
91
+ version: "0"
92
+ version:
93
+ requirements: []
94
+
95
+ rubyforge_project: gjastrab
96
+ rubygems_version: 1.3.1
97
+ signing_key:
98
+ specification_version: 2
99
+ summary: An ANT-based PureMVC generator.
100
+ test_files:
101
+ - test/test_pure_m_v_c_gen.rb