gen 0.24.0
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/ProjectInfo +56 -0
- data/README +30 -0
- data/Rakefile +220 -0
- data/bin/gen +43 -0
- data/doc/AUTHORS +9 -0
- data/doc/LICENSE +33 -0
- data/doc/RELEASES +4 -0
- data/lib/gen/app/USAGE +17 -0
- data/lib/gen/app/gen.rb +32 -0
- data/lib/gen/form/USAGE +14 -0
- data/lib/gen/form/gen.rb +37 -0
- data/lib/gen.rb +47 -0
- metadata +64 -0
data/ProjectInfo
ADDED
@@ -0,0 +1,56 @@
|
|
1
|
+
--- %YAML:1.0
|
2
|
+
|
3
|
+
TITLE : &title Gen
|
4
|
+
NAME : &pkg gen
|
5
|
+
VERSION : '0.24.0'
|
6
|
+
STATUS : beta
|
7
|
+
|
8
|
+
AUTHOR : George Moschovitis
|
9
|
+
EMAIL : &email gm@navel.gr
|
10
|
+
HOMEPAGE : "http://www.nitrohq.com"
|
11
|
+
|
12
|
+
SUMMARY: A simple code generation system.
|
13
|
+
|
14
|
+
DESCRIPTION: >
|
15
|
+
A simple code generation system.
|
16
|
+
|
17
|
+
DISTRIBUTE: [ gem, tgz, zip ]
|
18
|
+
|
19
|
+
DEPENDENCIES:
|
20
|
+
- [ glue, '= 0.24.0' ]
|
21
|
+
|
22
|
+
RUBYFORGE:
|
23
|
+
PROJECT: 'nitro'
|
24
|
+
USERNAME: 'gmosx'
|
25
|
+
|
26
|
+
# Anything to require upfront?
|
27
|
+
#TEST:
|
28
|
+
# fixture: ''
|
29
|
+
|
30
|
+
ANNOUNCE:
|
31
|
+
to: george.moschovitis@gmail.com
|
32
|
+
from: gm@navel.gr
|
33
|
+
domain: navel.gr
|
34
|
+
server: mail
|
35
|
+
port: 25 #587
|
36
|
+
account: gm@navel.gr
|
37
|
+
authtype: login #cram_md5 #plain
|
38
|
+
sectype: tls # ~, tls, ssl (tls is broke)
|
39
|
+
file: ANN
|
40
|
+
slogan: Gen
|
41
|
+
|
42
|
+
|
43
|
+
|
44
|
+
links:
|
45
|
+
- http://www.nitrohq.com
|
46
|
+
|
47
|
+
|
48
|
+
|
49
|
+
|
50
|
+
|
51
|
+
|
52
|
+
|
53
|
+
|
54
|
+
|
55
|
+
|
56
|
+
|
data/README
ADDED
@@ -0,0 +1,30 @@
|
|
1
|
+
= Gen 0.24.0 README
|
2
|
+
|
3
|
+
A Ruby code generation framework.
|
4
|
+
|
5
|
+
Code generators can be implemented as standard Ruby Gems
|
6
|
+
for simple distribution.
|
7
|
+
|
8
|
+
|
9
|
+
== Support
|
10
|
+
|
11
|
+
For any questions regarding Gen, feel free to ask on the ruby-talk
|
12
|
+
mailing list (which is mirrored to comp.lang.ruby) or contact
|
13
|
+
mailto:gm@navel.gr.
|
14
|
+
|
15
|
+
A Gen specific mailing list is also available. Please subscribe
|
16
|
+
to nitro-general@rubyforge.com. The homepage for this list
|
17
|
+
is available here:
|
18
|
+
|
19
|
+
http://rubyforge.org/mailman/listinfo/nitro-general
|
20
|
+
|
21
|
+
|
22
|
+
== Licence
|
23
|
+
|
24
|
+
Copyright (c) 2005, Navel Ltd (http://www.navel.gr)
|
25
|
+
Copyright (c) 2005, George 'gmosx' Moschovitis (http://www.gmosx.com)
|
26
|
+
|
27
|
+
Gen (http://www.nitrohq.com) is copyrighted free software
|
28
|
+
created and maintained by George Moschovitis (mailto:gm@navel.gr)
|
29
|
+
and released under the standard BSD Licence. For details consult
|
30
|
+
the file LICENCE.
|
data/Rakefile
ADDED
@@ -0,0 +1,220 @@
|
|
1
|
+
require 'rake/rdoctask'
|
2
|
+
require 'rake/testtask'
|
3
|
+
require 'rake/gempackagetask'
|
4
|
+
|
5
|
+
# Initialize some variables.
|
6
|
+
|
7
|
+
readme = File.read('README')
|
8
|
+
Release = (readme[/^= (.+) README$/, 1] || 'unknown').downcase.tr(" ", "-")
|
9
|
+
Name = Release[/\D+/].sub(/\-+$/, '') || 'unknown'
|
10
|
+
Version = Release[/[\d.]+/] || 'unknown'
|
11
|
+
|
12
|
+
AuthorName, AuthorMail = 'George Moschovitis', 'gm@navel.gr'
|
13
|
+
RubyVersion = '1.8.3'
|
14
|
+
|
15
|
+
# Description = (readme[/README\s+(.+?)\n\n/m, 1] || "unknown").gsub(/\s+/, " ")
|
16
|
+
# Summary = Description[/^.+?>/] || "unknown"
|
17
|
+
|
18
|
+
# DocFiles = %w(README NEWS TODO COPYING GPL)
|
19
|
+
# RDocFiles = DocFiles - %w(GPL)
|
20
|
+
RDocOpts = ["--inline-source", "--line-numbers","--title", Name ]
|
21
|
+
# AdditionalFiles = DocFiles + %w(setup.rb)
|
22
|
+
VersionFile = MainFile = File.join("lib", Name + '.rb')
|
23
|
+
|
24
|
+
RubyForgeProject = Name
|
25
|
+
RubyForgeUser = 'gmosx'
|
26
|
+
Homepage = "http://www.nitrohq.org/"
|
27
|
+
|
28
|
+
task :default => :package
|
29
|
+
|
30
|
+
# Run the tests.
|
31
|
+
|
32
|
+
Rake::TestTask.new do |t|
|
33
|
+
t.libs << 'test'
|
34
|
+
t.test_files = FileList['test/**/tc*.rb']
|
35
|
+
t.verbose = true
|
36
|
+
end
|
37
|
+
|
38
|
+
# Generate RDoc documentation.
|
39
|
+
|
40
|
+
Rake::RDocTask.new do |rd|
|
41
|
+
rd.main = 'README'
|
42
|
+
rd.rdoc_dir = 'rdoc'
|
43
|
+
rd.rdoc_files.include('README', 'INSTALL', 'doc/RELEASES', 'lib/**/*.rb')
|
44
|
+
rd.options << '--all --inline-source'
|
45
|
+
end
|
46
|
+
|
47
|
+
# Build gem.
|
48
|
+
|
49
|
+
spec = Gem::Specification.new do |s|
|
50
|
+
s.name = 'gen'
|
51
|
+
if File.read('lib/gen.rb') =~ /Version\s+=\s+'(\d+\.\d+\.\d+)'/
|
52
|
+
s.version = $1
|
53
|
+
else
|
54
|
+
raise 'No version found'
|
55
|
+
end
|
56
|
+
s.summary = 'Gen code generation framework'
|
57
|
+
s.description = 'A simple code generation framework.'
|
58
|
+
|
59
|
+
s.add_dependency 'glue', "= #{s.version}"
|
60
|
+
s.add_dependency 'og', "= #{s.version}"
|
61
|
+
s.add_dependency 'nitro', "= #{s.version}"
|
62
|
+
|
63
|
+
s.required_ruby_version = '= 1.8.3'
|
64
|
+
|
65
|
+
s.files = FileList[
|
66
|
+
'[A-Z]*', '{bin,doc,lib,test}/**/*'
|
67
|
+
].exclude("_darcs").exclude("_darcs/**/*").exclude('*.og').exclude('**/*.log').to_a
|
68
|
+
|
69
|
+
s.require_path = 'lib'
|
70
|
+
s.autorequire = 'nitro'
|
71
|
+
|
72
|
+
s.has_rdoc = true
|
73
|
+
s.extra_rdoc_files = FileList['[A-Z]*'].to_a
|
74
|
+
s.rdoc_options << '--main' << 'README' << '--title' << 'Gen Documentation'
|
75
|
+
s.rdoc_options << '--all' << '--inline-source'
|
76
|
+
|
77
|
+
s.test_files = []
|
78
|
+
|
79
|
+
s.bindir = 'bin'
|
80
|
+
s.executables = ['gen']
|
81
|
+
s.default_executable = 'gen'
|
82
|
+
|
83
|
+
s.author = 'George Moschovitis'
|
84
|
+
s.email = 'gm@navel.gr'
|
85
|
+
s.homepage = 'http://www.nitrohq.com'
|
86
|
+
s.rubyforge_project = 'gen'
|
87
|
+
end
|
88
|
+
|
89
|
+
Rake::GemPackageTask.new(spec) do |pkg|
|
90
|
+
pkg.package_dir = 'dist'
|
91
|
+
pkg.need_zip = true
|
92
|
+
pkg.need_tar = true
|
93
|
+
end
|
94
|
+
|
95
|
+
# Manual install (not recommended).
|
96
|
+
|
97
|
+
task :install do
|
98
|
+
ruby 'install.rb'
|
99
|
+
end
|
100
|
+
|
101
|
+
# Release files to Rubyforge.
|
102
|
+
# The code for this task provided by Florian Gross.
|
103
|
+
|
104
|
+
desc "Publish the release files to RubyForge."
|
105
|
+
task :publish => [:package] do
|
106
|
+
files = ['gem', 'tgz', 'zip'].map { |ext| "dist/#{Release}.#{ext}" }
|
107
|
+
|
108
|
+
if RubyForgeProject then
|
109
|
+
require 'net/http'
|
110
|
+
require 'open-uri'
|
111
|
+
|
112
|
+
changes = ''
|
113
|
+
if File.exist?('doc/RELEASES') then
|
114
|
+
changes_re = /^== \s+ Version \s+ #{Regexp.quote(Version)} \s*
|
115
|
+
(.+?) (?:==|\Z)/mx
|
116
|
+
changes = File.read('doc/RELEASES')[changes_re, 1] || ''
|
117
|
+
end
|
118
|
+
|
119
|
+
project_uri = "http://rubyforge.org/projects/#{RubyForgeProject}/"
|
120
|
+
project_data = open(project_uri) { |data| data.read }
|
121
|
+
group_id = project_data[/[?&]group_id=(\d+)/, 1]
|
122
|
+
raise "Couldn't get group id" unless group_id
|
123
|
+
|
124
|
+
print "#{RubyForgeUser}@rubyforge.org's password: "
|
125
|
+
password = STDIN.gets.chomp
|
126
|
+
|
127
|
+
login_response = Net::HTTP.start('rubyforge.org', 80) do |http|
|
128
|
+
data = [
|
129
|
+
"login=1",
|
130
|
+
"form_loginname=#{RubyForgeUser}",
|
131
|
+
"form_pw=#{password}"
|
132
|
+
].join("&")
|
133
|
+
http.post('/account/login.php', data)
|
134
|
+
end
|
135
|
+
|
136
|
+
cookie = login_response['set-cookie']
|
137
|
+
raise 'Login failed' unless cookie
|
138
|
+
headers = { 'Cookie' => cookie }
|
139
|
+
|
140
|
+
release_uri = "http://rubyforge.org/frs/admin/?group_id=#{group_id}"
|
141
|
+
release_data = open(release_uri, headers) { |data| data.read }
|
142
|
+
package_id = release_data[/[?&]package_id=(\d+)/, 1]
|
143
|
+
raise "Couldn't get package id" unless package_id
|
144
|
+
|
145
|
+
first_file = true
|
146
|
+
release_id = ""
|
147
|
+
|
148
|
+
files.each do |filename|
|
149
|
+
basename = File.basename(filename)
|
150
|
+
file_ext = File.extname(filename)
|
151
|
+
file_data = File.open(filename, "rb") { |file| file.read }
|
152
|
+
|
153
|
+
puts "Releasing #{basename}..."
|
154
|
+
|
155
|
+
release_response = Net::HTTP.start('rubyforge.org', 80) do |http|
|
156
|
+
release_date = Time.now.strftime('%Y-%m-%d %H:%M')
|
157
|
+
type_map = {
|
158
|
+
'.zip' => '3000',
|
159
|
+
'.tgz' => '3110',
|
160
|
+
'.gz' => '3110',
|
161
|
+
'.gem' => '1400',
|
162
|
+
'.md5sum' => '8100'
|
163
|
+
}; type_map.default = '9999'
|
164
|
+
type = type_map[file_ext]
|
165
|
+
boundary = 'rubyqMY6QN9bp6e4kS21H4y0zxcvoor'
|
166
|
+
|
167
|
+
query_hash = if first_file then
|
168
|
+
{
|
169
|
+
'group_id' => group_id,
|
170
|
+
'package_id' => package_id,
|
171
|
+
'release_name' => Release,
|
172
|
+
'release_date' => release_date,
|
173
|
+
'type_id' => type,
|
174
|
+
'processor_id' => '8000', # Any
|
175
|
+
'release_notes' => '',
|
176
|
+
'release_changes' => changes,
|
177
|
+
'preformatted' => '1',
|
178
|
+
'submit' => '1'
|
179
|
+
}
|
180
|
+
else
|
181
|
+
{
|
182
|
+
'group_id' => group_id,
|
183
|
+
'release_id' => release_id,
|
184
|
+
'package_id' => package_id,
|
185
|
+
'step2' => '1',
|
186
|
+
'type_id' => type,
|
187
|
+
'processor_id' => '8000', # Any
|
188
|
+
'submit' => 'Add This File'
|
189
|
+
}
|
190
|
+
end
|
191
|
+
|
192
|
+
query = '?' + query_hash.map do |(name, value)|
|
193
|
+
[name, URI.encode(value)].join('=')
|
194
|
+
end.join('&')
|
195
|
+
|
196
|
+
data = [
|
197
|
+
"--" + boundary,
|
198
|
+
"Content-Disposition: form-data; name=\"userfile\"; filename=\"#{basename}\"",
|
199
|
+
"Content-Type: application/octet-stream",
|
200
|
+
"Content-Transfer-Encoding: binary",
|
201
|
+
"", file_data, ""
|
202
|
+
].join("\x0D\x0A")
|
203
|
+
|
204
|
+
release_headers = headers.merge(
|
205
|
+
'Content-Type' => "multipart/form-data; boundary=#{boundary}"
|
206
|
+
)
|
207
|
+
|
208
|
+
target = first_file ? '/frs/admin/qrs.php' : '/frs/admin/editrelease.php'
|
209
|
+
http.post(target + query, data, release_headers)
|
210
|
+
end
|
211
|
+
|
212
|
+
if first_file then
|
213
|
+
release_id = release_response.body[/release_id=(\d+)/, 1]
|
214
|
+
raise("Couldn't get release id") unless release_id
|
215
|
+
end
|
216
|
+
|
217
|
+
first_file = false
|
218
|
+
end
|
219
|
+
end
|
220
|
+
end
|
data/bin/gen
ADDED
@@ -0,0 +1,43 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'gen'
|
4
|
+
|
5
|
+
def usage
|
6
|
+
puts <<-USAGE
|
7
|
+
|
8
|
+
NAME
|
9
|
+
gen - frontend for the Nitro generator mechanism.
|
10
|
+
|
11
|
+
SYNOPSIS
|
12
|
+
gen [generator] [generator options]
|
13
|
+
|
14
|
+
DESCRIPTION
|
15
|
+
This is a frontend to the Nitro generator mechanism. Nitro
|
16
|
+
generators are used to 'bootstrap' development by creating
|
17
|
+
a standard directory structure and files for common tasks.
|
18
|
+
|
19
|
+
app:
|
20
|
+
This will create some basic files to get you
|
21
|
+
started fleshing out your Nitro web application.
|
22
|
+
|
23
|
+
EXAMPLE
|
24
|
+
nitrogen app ~/my_application
|
25
|
+
|
26
|
+
This will generate a new Nitro application in the
|
27
|
+
~/my_application folder.
|
28
|
+
USAGE
|
29
|
+
exit 1
|
30
|
+
end
|
31
|
+
|
32
|
+
generator = ARGV.shift || usage()
|
33
|
+
|
34
|
+
begin
|
35
|
+
require "gen/#{generator}/gen.rb"
|
36
|
+
rescue LoadError
|
37
|
+
puts 'Cannot load the specified generator!'
|
38
|
+
exit 1
|
39
|
+
end
|
40
|
+
|
41
|
+
$generator.generator_dir = File.join(Gen::LibPath, 'gen', generator)
|
42
|
+
$generator.setup
|
43
|
+
$generator.run
|
data/doc/AUTHORS
ADDED
data/doc/LICENSE
ADDED
@@ -0,0 +1,33 @@
|
|
1
|
+
The BSD License
|
2
|
+
|
3
|
+
Copyright (c) 2004-2005, George 'gmosx' Moschovitis. (http://www.gmosx.com)
|
4
|
+
Copyright (c) 2004-2005, Navel Ltd. (http://www.navel.gr)
|
5
|
+
All rights reserved.
|
6
|
+
|
7
|
+
Redistribution and use in source and binary forms, with or without
|
8
|
+
modification, are permitted provided that the following conditions are
|
9
|
+
met:
|
10
|
+
|
11
|
+
* Redistributions of source code must retain the above copyright
|
12
|
+
notice, this list of conditions and the following disclaimer.
|
13
|
+
|
14
|
+
* Redistributions in binary form must reproduce the above copyright
|
15
|
+
notice, this list of conditions and the following disclaimer in the
|
16
|
+
documentation and/or other materials provided with the distribution.
|
17
|
+
|
18
|
+
* Neither the name of Navel nor the names of its contributors may be
|
19
|
+
used to endorse or promote products derived from this software
|
20
|
+
without specific prior written permission.
|
21
|
+
|
22
|
+
THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
|
23
|
+
"AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
|
24
|
+
LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR
|
25
|
+
A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT
|
26
|
+
OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL,
|
27
|
+
SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED
|
28
|
+
TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR
|
29
|
+
PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF
|
30
|
+
LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING
|
31
|
+
NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS
|
32
|
+
SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
|
33
|
+
|
data/doc/RELEASES
ADDED
data/lib/gen/app/USAGE
ADDED
@@ -0,0 +1,17 @@
|
|
1
|
+
NAME
|
2
|
+
gen app - Nitro application generator.
|
3
|
+
|
4
|
+
SYNOPSIS
|
5
|
+
gen app [generator options]
|
6
|
+
|
7
|
+
DESCRIPTION
|
8
|
+
This generator will create some basic files to get you
|
9
|
+
started fleshing out your Nitro web application.
|
10
|
+
The proto directory structure in the standard Nitro
|
11
|
+
distribution is used as reference.
|
12
|
+
|
13
|
+
EXAMPLE
|
14
|
+
nitrogen app ~/my_application
|
15
|
+
|
16
|
+
This will generate a new Nitro application in the
|
17
|
+
~/my_application folder.
|
data/lib/gen/app/gen.rb
ADDED
@@ -0,0 +1,32 @@
|
|
1
|
+
$NITRO_NO_ENVIRONMENT = true
|
2
|
+
|
3
|
+
require 'nano/dir/self/recurse'
|
4
|
+
|
5
|
+
require 'gen'
|
6
|
+
require 'nitro'
|
7
|
+
|
8
|
+
PROTO_DIR = File.join(Nitro::LibPath, '..', 'proto')
|
9
|
+
|
10
|
+
class AppGen < Gen
|
11
|
+
|
12
|
+
def setup
|
13
|
+
@path = ARGV[0] || usage()
|
14
|
+
@path = File.expand_path(@path)
|
15
|
+
end
|
16
|
+
|
17
|
+
def run
|
18
|
+
if File.exists? @path
|
19
|
+
STDERR.puts "ERROR: Path #{@path} already exists! Aborting!"
|
20
|
+
exit 1
|
21
|
+
end
|
22
|
+
|
23
|
+
FileUtils.cp_r(PROTO_DIR, @path)
|
24
|
+
|
25
|
+
Dir.recurse(@path) do |f|
|
26
|
+
FileUtils.rm_rf(f) if /\.svn$/ =~ f
|
27
|
+
end
|
28
|
+
end
|
29
|
+
|
30
|
+
end
|
31
|
+
|
32
|
+
$generator = AppGen.new
|
data/lib/gen/form/USAGE
ADDED
@@ -0,0 +1,14 @@
|
|
1
|
+
NAME
|
2
|
+
gen form - Nitro xhtml form generator.
|
3
|
+
|
4
|
+
SYNOPSIS
|
5
|
+
gen form [options]
|
6
|
+
|
7
|
+
DESCRIPTION
|
8
|
+
This generator will create some a complete xhtml
|
9
|
+
form for the given object. The scaffolding code
|
10
|
+
uses the object annotations to create a useful form.
|
11
|
+
|
12
|
+
EXAMPLE
|
13
|
+
gen form model/user User
|
14
|
+
gen form model/user
|
data/lib/gen/form/gen.rb
ADDED
@@ -0,0 +1,37 @@
|
|
1
|
+
require 'nano/kernel/constant'
|
2
|
+
require 'nano/string/underscore'
|
3
|
+
|
4
|
+
require 'gen'
|
5
|
+
require 'nitro/mixin/form'
|
6
|
+
require 'og'
|
7
|
+
|
8
|
+
# This generator generates xhtml forms for Ruby objects.
|
9
|
+
#
|
10
|
+
# === Example
|
11
|
+
#
|
12
|
+
# gen form model/user User
|
13
|
+
# gen form model/user
|
14
|
+
|
15
|
+
class FormGen < Gen
|
16
|
+
include Nitro::FormMixin
|
17
|
+
|
18
|
+
def setup
|
19
|
+
@def_filename = ARGV[1] || usage()
|
20
|
+
@klass = ARGV[2]
|
21
|
+
@form_filename = ARGV[3] || "#{@klass.underscore}.html"
|
22
|
+
require @def_filename
|
23
|
+
rescue LoadError
|
24
|
+
puts "Cannot load ruby file '#@def_filename'!"
|
25
|
+
end
|
26
|
+
|
27
|
+
def run
|
28
|
+
@klass = constant(@klass)
|
29
|
+
@klass.send(:define_method, :oid) { -1 }
|
30
|
+
form = form_for(@klass.allocate, :skip_relations => true)
|
31
|
+
File.open(@form_filename, 'w') do |f|
|
32
|
+
f << form
|
33
|
+
end
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
$generator = FormGen.new
|
data/lib/gen.rb
ADDED
@@ -0,0 +1,47 @@
|
|
1
|
+
# = Gen
|
2
|
+
#
|
3
|
+
# A flexible code generation system.
|
4
|
+
#
|
5
|
+
# Copyright (c) 2005, Navel Ltd (http://www.navel.gr)
|
6
|
+
# Copyright (c) 2005, George Moschovitis (http://www.gmosx.com)
|
7
|
+
#
|
8
|
+
# Gen (http://www.nitrohq.com) is copyrighted free software
|
9
|
+
# created and maintained by George Moschovitis (mailto:gm@navel.gr)
|
10
|
+
# and released under the standard BSD Licence. For details
|
11
|
+
# consult the file doc/LICENCE.
|
12
|
+
|
13
|
+
class Gen
|
14
|
+
|
15
|
+
# The version.
|
16
|
+
|
17
|
+
Version = '0.24.0'
|
18
|
+
|
19
|
+
# Library path.
|
20
|
+
|
21
|
+
LibPath = File.dirname(__FILE__)
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
# The base generator class.
|
26
|
+
#--
|
27
|
+
# TODO: add support for cmdparse.
|
28
|
+
#++
|
29
|
+
|
30
|
+
class Gen
|
31
|
+
attr_accessor :generator_dir
|
32
|
+
|
33
|
+
def usage
|
34
|
+
filename = File.join(@generator_dir, 'USAGE')
|
35
|
+
puts "\n#{File.read(filename)}"
|
36
|
+
exit 1
|
37
|
+
end
|
38
|
+
|
39
|
+
def setup
|
40
|
+
end
|
41
|
+
|
42
|
+
def run
|
43
|
+
end
|
44
|
+
|
45
|
+
def teardown
|
46
|
+
end
|
47
|
+
end
|
metadata
ADDED
@@ -0,0 +1,64 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
rubygems_version: 0.8.10
|
3
|
+
specification_version: 1
|
4
|
+
name: gen
|
5
|
+
version: !ruby/object:Gem::Version
|
6
|
+
version: 0.24.0
|
7
|
+
date: 2005-10-28
|
8
|
+
summary: A simple code generation system.
|
9
|
+
require_paths:
|
10
|
+
- lib
|
11
|
+
email: gm@navel.gr
|
12
|
+
homepage: http://www.nitrohq.com
|
13
|
+
rubyforge_project: nitro
|
14
|
+
description:
|
15
|
+
autorequire:
|
16
|
+
default_executable:
|
17
|
+
bindir: bin
|
18
|
+
has_rdoc: false
|
19
|
+
required_ruby_version: !ruby/object:Gem::Version::Requirement
|
20
|
+
requirements:
|
21
|
+
-
|
22
|
+
- ">"
|
23
|
+
- !ruby/object:Gem::Version
|
24
|
+
version: 0.0.0
|
25
|
+
version:
|
26
|
+
platform: ruby
|
27
|
+
authors:
|
28
|
+
- George Moschovitis
|
29
|
+
files:
|
30
|
+
- bin
|
31
|
+
- doc
|
32
|
+
- lib
|
33
|
+
- ProjectInfo
|
34
|
+
- Rakefile
|
35
|
+
- README
|
36
|
+
- bin/gen
|
37
|
+
- doc/AUTHORS
|
38
|
+
- doc/LICENSE
|
39
|
+
- doc/RELEASES
|
40
|
+
- lib/gen
|
41
|
+
- lib/gen.rb
|
42
|
+
- lib/gen/app
|
43
|
+
- lib/gen/form
|
44
|
+
- lib/gen/app/gen.rb
|
45
|
+
- lib/gen/app/USAGE
|
46
|
+
- lib/gen/form/gen.rb
|
47
|
+
- lib/gen/form/USAGE
|
48
|
+
test_files: []
|
49
|
+
rdoc_options: []
|
50
|
+
extra_rdoc_files: []
|
51
|
+
executables: []
|
52
|
+
extensions: []
|
53
|
+
requirements: []
|
54
|
+
dependencies:
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: glue
|
57
|
+
version_requirement:
|
58
|
+
version_requirements: !ruby/object:Gem::Version::Requirement
|
59
|
+
requirements:
|
60
|
+
-
|
61
|
+
- "="
|
62
|
+
- !ruby/object:Gem::Version
|
63
|
+
version: 0.24.0
|
64
|
+
version:
|