nitro 0.6.0 → 0.7.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/ChangeLog +175 -0
- data/README +41 -7
- data/RELEASES +24 -0
- data/Rakefile +5 -7
- data/bin/new_app.rb +26 -4
- data/bin/new_form.rb +54 -0
- data/bin/proto/config.rb +3 -3
- data/bin/proto/root/index.xhtml +2 -34
- data/bin/proto/root/style.css +4 -70
- data/bin/proto/root/style.xsl +8 -39
- data/doc/tutorial.txt +5 -0
- data/examples/blog/app.rb +2 -1
- data/examples/blog/config.rb +7 -2
- data/examples/blog/root/style.xsl +1 -2
- data/examples/flash/README +34 -0
- data/examples/flash/app.rb +20 -0
- data/examples/flash/config.rb +38 -0
- data/examples/flash/lib/flash.rb +40 -0
- data/examples/flash/root/index.xhtml +25 -0
- data/examples/flash/root/show_inline_text.xhtml +12 -0
- data/examples/flash/tmp.swf +0 -0
- data/examples/og/README +7 -0
- data/examples/og/mock_example.rb +58 -0
- data/examples/og/run.rb +9 -5
- data/examples/tiny/root/include.xhtml +3 -0
- data/examples/tiny/root/index.xhtml +2 -1
- data/lib/glue/property.rb +166 -107
- data/lib/glue/property.rb.old +307 -0
- data/lib/nitro/builders/form.rb +26 -17
- data/lib/nitro/events.rb +1 -1
- data/lib/nitro/markup.rb +120 -0
- data/lib/nitro/server/cookie.rb +1 -1
- data/lib/nitro/server/dispatcher.rb +5 -6
- data/lib/nitro/server/filters.rb +1 -1
- data/lib/nitro/server/render.rb +33 -29
- data/lib/nitro/server/shaders.rb +32 -3
- data/lib/nitro/server/user.rb +1 -1
- data/lib/nitro/server/webrick.rb +9 -4
- data/lib/nitro/ui/popup.rb +1 -1
- data/lib/nitro/ui/select.rb +1 -1
- data/lib/nitro/ui/tabs.rb +1 -1
- data/lib/nitro/version.rb +2 -2
- data/lib/og.rb +17 -6
- data/lib/og/backend.rb +34 -4
- data/lib/og/backends/mysql.rb +3 -17
- data/lib/og/backends/psql.rb +5 -17
- data/lib/og/meta.rb +41 -26
- data/lib/og/mock.rb +223 -0
- data/lib/og/version.rb +2 -2
- data/lib/parts/content.rb +61 -0
- data/test/glue/{tc_properties.rb → tc_property.rb} +0 -1
- data/test/glue/tc_property_mixins.rb +62 -0
- data/test/og/tc_lifecycle.rb +107 -0
- data/test/tc_og.rb +31 -4
- data/vendor/README +6 -0
- data/vendor/binding_of_caller.rb +81 -0
- data/vendor/breakpoint.rb +526 -0
- data/vendor/breakpoint_client.rb +157 -0
- metadata +135 -95
data/ChangeLog
CHANGED
@@ -1,6 +1,181 @@
|
|
1
|
+
27-12-2004 George Moschovitis <gm@navel.gr>
|
1
2
|
|
3
|
+
* lib/og/mock.rb: fix, dont wrap methods.
|
4
|
+
|
5
|
+
* Rakefile: fix.
|
6
|
+
|
7
|
+
26-12-2004 George Moschovitis <gm@navel.gr>
|
8
|
+
|
9
|
+
* lib/nitro/server/render.rb (#compile_xxx_method): better handling
|
10
|
+
of redirects,
|
11
|
+
(RenderExit): introduced,
|
12
|
+
(#redirect): rewritem, raise RenderExit.
|
13
|
+
|
14
|
+
* lib/nitro/markup.rb (PropertyUtils#prop_setter): override.
|
15
|
+
(#markup): removed.
|
16
|
+
(#expand, #narrow): fixed,
|
17
|
+
YEAH, markup works.
|
18
|
+
|
19
|
+
* lib/glue/property.rb (PropertyUtils#prop_setter): factored out.
|
20
|
+
|
21
|
+
* lib/nitro/markup.rb: narrow -> compact (better english) [knasis].
|
22
|
+
|
23
|
+
25-12-2004 George Moschovitis <gm@navel.gr>
|
24
|
+
|
25
|
+
* MERRY XMAS :)
|
26
|
+
|
27
|
+
22-12-2004 George Moschovitis <gm@navel.gr>
|
28
|
+
|
29
|
+
* lib/nitro/markup.rb: introduced,
|
30
|
+
(#markup): implemented.
|
31
|
+
|
32
|
+
* lib/nitro/server/render.rb: stop the pipeline if return false,
|
33
|
+
fixed redirect bug.
|
34
|
+
|
35
|
+
* lib/nitro/server/dispatcher.rb: dump rendering_errors in error page.
|
36
|
+
|
37
|
+
* lib/parts/content.rb: working with modules,
|
38
|
+
(Markup): introduced.
|
39
|
+
|
40
|
+
* lib/nitro/builders/form.rb: :ui modifier instead of :form,
|
41
|
+
(#render): handle the :markup meta data.
|
42
|
+
|
43
|
+
* Rakefile: og distribution includes tests + Rakefile [tquas]
|
44
|
+
|
45
|
+
21-12-2004 George Moschovitis <gm@navel.gr>
|
46
|
+
|
47
|
+
* lib/og/mock.rb: Call wrap methods.
|
48
|
+
|
49
|
+
* test/glue/tc_property_mixins.rb: automanagement unit tests [by tquas],
|
50
|
+
made it pass.
|
51
|
+
|
52
|
+
* test/og/tc_lifecycle.rb: lifecycle unit tests [by tquas]
|
53
|
+
|
54
|
+
* lib/og/meta.rb (#has_many): enchant with add_XXX the container
|
55
|
+
class [mneumann].
|
56
|
+
|
57
|
+
* test/tc_og.rb: added test for create.
|
58
|
+
|
59
|
+
* Rakefile: add ChangeLog in og distribution.
|
60
|
+
|
61
|
+
* lib/og/backend.rb (#table): use the $og_table_prefix.
|
62
|
+
|
63
|
+
* lib/og.rb: $og_table_prefix,
|
64
|
+
(#enchant): use module_eval with __FILE__, __LINE__,
|
65
|
+
(#enchant): add create method [mneumann]
|
66
|
+
|
67
|
+
* README: updated with breakpoint info.
|
68
|
+
|
69
|
+
* lib/og/mock.rb: fixed [tquas].
|
70
|
+
|
71
|
+
* vendor: added 'breakpoint' by Florian Gross [fgross].
|
72
|
+
tested breakpoint integration, it works!
|
73
|
+
|
74
|
+
20-12-2004 George Moschovitis <gm@navel.gr>
|
75
|
+
|
76
|
+
* test/glue/tc_propert.rb: fixed test.
|
77
|
+
|
78
|
+
* lib/glue/propery.rb: (#prop) totaly recoded, doesnt polute Module any
|
79
|
+
more,
|
80
|
+
(#__add_prop): recoded, gets target, no more reader, writer params.
|
81
|
+
use <<-"end_eval" to get better error reporting!
|
82
|
+
(#property): ultra cool append feature hack avoids passing @@__props from
|
83
|
+
a Module to the Class that includes it --> BLACK MAGIC.
|
84
|
+
(Property#enchant): implemented.
|
85
|
+
(PropertyUtils): introduced.
|
86
|
+
(PropertyUtils#add_prop): yeah, removed from Module!
|
87
|
+
(#meta): recoded.
|
88
|
+
(PropertyUtils#*): also handle meta.
|
89
|
+
(#inherit_meta): removed.
|
90
|
+
(#meta): fixed bug.
|
91
|
+
fix: no more @@__props redifen warnings when running with -w [tquas]
|
92
|
+
|
93
|
+
* lib/og.rb: (#initialize): automanage classes that include a manageable
|
94
|
+
Module (hack),
|
95
|
+
(#convert): convert classes that include a manageable Module (hack).
|
96
|
+
(#convert): no need to call inherit_meta.
|
97
|
+
|
98
|
+
19-12-2004 George Moschovitis <gm@navel.gr>
|
99
|
+
|
100
|
+
* benchmark/nitro: introduced.
|
101
|
+
|
102
|
+
* benchmark/og: introduced.
|
103
|
+
|
104
|
+
18-12-2004 George Moschovitis <gm@navel.gr>
|
105
|
+
|
106
|
+
* README: updated some texts,
|
107
|
+
added description of contents section.
|
108
|
+
|
109
|
+
17-12-2004 George Moschovitis <gm@navel.gr>
|
110
|
+
|
111
|
+
* bin/new_app.rb: made win32 compatible.
|
112
|
+
|
113
|
+
* lib/nitro/server/webrick.rb: win32 compatible.
|
114
|
+
|
115
|
+
* bin/new_form.rb: introduced and implemented.
|
116
|
+
|
117
|
+
* lib/nitro/builders/form.rb: require safehash,
|
118
|
+
better formatting.
|
119
|
+
|
120
|
+
16-12-2004 George Moschovitis <gm@navel.gr>
|
121
|
+
|
122
|
+
* lib/og/meta.rb (many_to_many): changed API.
|
123
|
+
|
124
|
+
* test/tc_og.rb: updated.
|
125
|
+
|
126
|
+
* lib/og/backends/mysql.rb (#create_table): use create_fields,
|
127
|
+
NOT NULL in join tables.
|
128
|
+
|
129
|
+
* lib/og/backends/psql.rb (#create_table): use create_fields,
|
130
|
+
NOT NULL in join tables.
|
131
|
+
|
132
|
+
* lib/og/backend.rb (#create_fields): implemented,
|
133
|
+
also use :extra_sql modifier [req tquas].
|
134
|
+
|
135
|
+
15-12-2004 George Moschovitis <gm@navel.gr>
|
136
|
+
|
137
|
+
* bin/new_app.rb: handle trailing '/'.
|
138
|
+
|
139
|
+
* bin/proto/root/style.css: cleaned up.
|
140
|
+
|
141
|
+
* bin/proto/root/style.xsl: cleaned up.
|
142
|
+
|
143
|
+
* bin/proto/root/index.xhtml: cleaned up.
|
144
|
+
|
145
|
+
* lib/parts/content.rb: introduced,
|
146
|
+
(Content): introduced,
|
147
|
+
(Category): introduced,
|
148
|
+
(ACL): introduced.
|
149
|
+
|
150
|
+
* lib/og/meta.rb: changed has_one signature [patch by tquas]
|
151
|
+
|
152
|
+
* examples/og/mock_example.rb: introduced,
|
153
|
+
improved, added test-unit code.
|
154
|
+
|
155
|
+
* lib/og/mock.rb: implemented mock database. [patch by tquas]
|
156
|
+
|
157
|
+
14-12-2004 George Moschovitis <gm@navel.gr>
|
158
|
+
|
159
|
+
* examples/blog/root/style.xsl: fixed a bug.
|
160
|
+
|
161
|
+
13-12-2004 George Moschovitis <gm@navel.gr>
|
162
|
+
|
163
|
+
* lib/shaders.rb (RubyShader): added support for statically including
|
164
|
+
files.
|
165
|
+
|
166
|
+
* lib/server/render.rb (RenderUtils): dump method helps in debugging.
|
167
|
+
|
168
|
+
* examples/flash/lib/flash.rb: introduced service,
|
169
|
+
yeah with some SHITY ming code the example works.
|
170
|
+
|
171
|
+
* examples/flash: introduced flash example.
|
172
|
+
|
2
173
|
10-12-2004 George Moschovitis <gm@navel.gr>
|
3
174
|
|
175
|
+
* lib/og/backends/psql-pr.rb: introduced Postgres-PR backend.
|
176
|
+
|
177
|
+
* --- VERSION 0.6.0 ---
|
178
|
+
|
4
179
|
* bin/new_app.rb: remove .svn dirs.
|
5
180
|
|
6
181
|
* final preparations for release.
|
data/README
CHANGED
@@ -39,16 +39,17 @@ A short summary of the major features:
|
|
39
39
|
|
40
40
|
* Shaders, XSLT templates
|
41
41
|
|
42
|
+
Nitro features a fully programmable source transformation pipeline.
|
43
|
+
A transformation stage in this pipeline is called a Shader. An example
|
44
|
+
shader transforms an XHTML document with embeded ruby-code processing
|
45
|
+
instructions to a Ruby method. Another shader might be an XSLT stage.
|
46
|
+
|
42
47
|
Nitro promotes the usage of XSLT for web templates. The functional
|
43
48
|
nature of XSL is ideal for the Web. Moreover, the engine efficiently
|
44
49
|
precompiles the xsl transformation along with other transformations
|
45
50
|
(for example localization) essentially providing a computationally
|
46
51
|
free transformation step.
|
47
52
|
|
48
|
-
A shader integrates many XSLT templates and or CSS stylesheets
|
49
|
-
to encapsulate all styling/skinning requirements of a Web Application.
|
50
|
-
|
51
|
-
Nitro features a fully programmable shader pipeline.
|
52
53
|
|
53
54
|
* Multi phase evaluation
|
54
55
|
|
@@ -60,7 +61,7 @@ A short summary of the major features:
|
|
60
61
|
'RunTime' time.
|
61
62
|
|
62
63
|
<!-- compile time include (static include) -->
|
63
|
-
<?include
|
64
|
+
<?include href="myfile.si" />
|
64
65
|
|
65
66
|
<!-- run time include (dynamic include) -->
|
66
67
|
<include href="myfile.si" />
|
@@ -79,7 +80,8 @@ A short summary of the major features:
|
|
79
80
|
to describe the relations between objects, a flexible and intuitive api
|
80
81
|
for querieng the database, raw access to the SQL language if needed
|
81
82
|
(for example to fine tune the automatically generated SQL tables, or
|
82
|
-
for custom queries), suports deserialization to Ruby objects or tuples
|
83
|
+
for custom queries), suports deserialization to Ruby objects or tuples,
|
84
|
+
automatically generates join tables for many_to_many relations
|
83
85
|
and provides a collection of usefull Mixins to synthesize common
|
84
86
|
Entities.
|
85
87
|
|
@@ -100,6 +102,10 @@ A short summary of the major features:
|
|
100
102
|
Request filters are a powerfull mechanism for customized processing
|
101
103
|
of special requests. Example filters are the autologin filter,
|
102
104
|
a gzip filter etc.
|
105
|
+
|
106
|
+
Moreover, Nitro provides the fine-grained filtering method pioneered
|
107
|
+
by Rails where you can attach single methods, blocks, objects or
|
108
|
+
modules, before, after or arrounf actions.
|
103
109
|
|
104
110
|
* Hierarchical Caching
|
105
111
|
|
@@ -116,7 +122,7 @@ A short summary of the major features:
|
|
116
122
|
|
117
123
|
* Support for 'nice' urls.
|
118
124
|
|
119
|
-
|
125
|
+
Experimental.
|
120
126
|
|
121
127
|
* Simple events manager.
|
122
128
|
|
@@ -132,6 +138,11 @@ A short summary of the major features:
|
|
132
138
|
server. You can use the irb console to investigate all variables
|
133
139
|
and code in your running server process.
|
134
140
|
|
141
|
+
* integrates the 'breakpoint' library by Florian Gross. The Breakpoint
|
142
|
+
library provides the convenience of being able to inspect and modify
|
143
|
+
state, diagnose bugs all via IRB by simply setting breakpoints in
|
144
|
+
your applications by the call of a method.
|
145
|
+
|
135
146
|
* Parts
|
136
147
|
|
137
148
|
Parts are organized modules of web services. A Web Framework that
|
@@ -281,6 +292,7 @@ to stop the application execute:
|
|
281
292
|
|
282
293
|
$ ./ctl stop
|
283
294
|
|
295
|
+
|
284
296
|
== Debuging Nitro applications
|
285
297
|
|
286
298
|
Have "tail -f" commands running on logs/app.log in your application
|
@@ -289,6 +301,28 @@ information to these files. Debugging info will also be shown in the
|
|
289
301
|
browser when running in debug mode.
|
290
302
|
|
291
303
|
|
304
|
+
== Description of contents
|
305
|
+
|
306
|
+
bin
|
307
|
+
Commands and wizards.
|
308
|
+
|
309
|
+
examples/
|
310
|
+
Various examples. 'tiny' is a minimal example, 'blog' is a fully working and
|
311
|
+
nice looking Blog implementation, 'og' contains some Og examples and 'flash'
|
312
|
+
is an example for generating binary content for a Nitro response.
|
313
|
+
|
314
|
+
lib/nitro
|
315
|
+
Nitro library source files.
|
316
|
+
|
317
|
+
lib/og
|
318
|
+
Og library source files.
|
319
|
+
|
320
|
+
lib/glue
|
321
|
+
Common source files.
|
322
|
+
|
323
|
+
test
|
324
|
+
Unit and functional tests.
|
325
|
+
|
292
326
|
== Support
|
293
327
|
|
294
328
|
For any questions regarding Nitro, feel free to ask on the ruby-talk
|
data/RELEASES
CHANGED
@@ -1,3 +1,27 @@
|
|
1
|
+
== Version 0.7 was released on 27/12/2004.
|
2
|
+
|
3
|
+
A snapshot of the latest code. Many fixes and new features result
|
4
|
+
in a more mature product. Many thanks to the ruby hackers that sent
|
5
|
+
suggestions and patches used in this release!
|
6
|
+
|
7
|
+
Most notable additions:
|
8
|
+
|
9
|
+
* Improved win32 compatibility (Tiny example runs out of the box).
|
10
|
+
* Binary content example (Flash, needs ruby-ming installed to run).
|
11
|
+
* Totaly recoded prop_accessor mechanism, avoids polution of the Module
|
12
|
+
class.
|
13
|
+
* prop_accessors for Modules, allows synthesizing of managed objects
|
14
|
+
from Mixins.
|
15
|
+
* new automatically generated methods in Og.
|
16
|
+
* MockDatabase leverages the FlexMock object for easier unit testing.
|
17
|
+
* Integrated the cool Breakpointer library by Florian Gross.
|
18
|
+
* Markup mixin to automatically expand/compact generalized markup code.
|
19
|
+
* new_form wizard.
|
20
|
+
* Statically (compile time) included subscripts.
|
21
|
+
* Important bug fix in redirects.
|
22
|
+
|
23
|
+
and many many bugfixes! :)
|
24
|
+
|
1
25
|
== Version 0.6 was released on 13/12/2004.
|
2
26
|
|
3
27
|
This is a preview release, the api for the new features is not
|
data/Rakefile
CHANGED
@@ -1,7 +1,5 @@
|
|
1
|
-
# = Rakefile
|
2
|
-
#
|
3
1
|
# code:
|
4
|
-
# George Moschovitis <gm@navel.gr>
|
2
|
+
# * George Moschovitis <gm@navel.gr>
|
5
3
|
#
|
6
4
|
# (c) 2004 Navel, all rights reserved.
|
7
5
|
# $Id: connection.rb 71 2004-10-18 10:50:22Z gmosx $
|
@@ -56,7 +54,7 @@ if 'nitro' == project
|
|
56
54
|
|
57
55
|
PKG_VERSION = $srv_version
|
58
56
|
PKG_FILES = FileList[
|
59
|
-
"[A-Z]*", "{bin,etc,ext,examples,doc,lib,test}/**/*"
|
57
|
+
"[A-Z]*", "{bin,benchmark,etc,ext,examples,doc,lib,test,vendor}/**/*"
|
60
58
|
# "examples/*.rb"
|
61
59
|
].exclude(".svn/**/*").exclude("*.og").exclude("**/*.log")
|
62
60
|
|
@@ -65,9 +63,9 @@ if 'nitro' == project
|
|
65
63
|
s.version = PKG_VERSION
|
66
64
|
s.summary = "Web Engine"
|
67
65
|
s.description = "An efficient, yet simple engine for Web Applications"
|
66
|
+
# s.add_dependency("postgres-pr", ">= 0.3.0")
|
68
67
|
# s.add_dependency("postgres", ">= 0.7.1")
|
69
68
|
# s.add_dependency("extensions", ">= 0.5")
|
70
|
-
# s.add_dependency("builder")
|
71
69
|
s.required_ruby_version = ">= 1.8.1"
|
72
70
|
s.files = PKG_FILES.to_a
|
73
71
|
s.require_path = "lib"
|
@@ -91,9 +89,9 @@ else
|
|
91
89
|
|
92
90
|
PKG_VERSION = $og_version
|
93
91
|
PKG_FILES = FileList[
|
94
|
-
"README.og", "RELEASES.og", "LICENSE", "AUTHORS",
|
92
|
+
"README.og", "RELEASES.og", "LICENSE", "AUTHORS", "Rakefile", "ChangeLog*",
|
95
93
|
"examples/og/*", "lib/glue.rb", "lib/glue/**/*", "lib/og/**/*", "lib/og.rb",
|
96
|
-
"test/*og*.rb"
|
94
|
+
"test/*og*.rb", "test/og/*"
|
97
95
|
].exclude(".svn/**/*").exclude("**/*.log")
|
98
96
|
|
99
97
|
spec = Gem::Specification.new do |s|
|
data/bin/new_app.rb
CHANGED
@@ -4,22 +4,44 @@
|
|
4
4
|
#
|
5
5
|
# Creates the directory structure for a new project.
|
6
6
|
#
|
7
|
-
#--
|
8
7
|
# code:
|
9
|
-
# George Moschovitis <gm@navel.gr>
|
8
|
+
# * George Moschovitis <gm@navel.gr>
|
10
9
|
#
|
11
10
|
# (c) 2004 Navel, all rights reserved.
|
12
|
-
# $Id: new_app.rb
|
13
|
-
|
11
|
+
# $Id: new_app.rb 194 2004-12-20 20:23:57Z gmosx $
|
12
|
+
|
13
|
+
require 'fileutils'
|
14
|
+
|
15
|
+
# gmosx, TODO: move to a library
|
16
|
+
#
|
17
|
+
def ll_r(path, &block)
|
18
|
+
Dir.foreach(path) do |f|
|
19
|
+
next if [".", ".."].include?(f)
|
20
|
+
fullname = path + "/" + f
|
21
|
+
yield(fullname)
|
22
|
+
ll_r(fullname, &block) if FileTest.directory?fullname and not FileTest.symlink?fullname
|
23
|
+
end
|
24
|
+
end
|
14
25
|
|
15
26
|
bin_dir = File.dirname(__FILE__)
|
16
27
|
|
17
28
|
if base_dir = ARGV[0]
|
18
29
|
|
30
|
+
# remove the trailing '/' if it exists.
|
31
|
+
base_dir = base_dir.gsub(/\/$/, '')
|
32
|
+
|
33
|
+
# the following code is win32 compatible.
|
34
|
+
#
|
35
|
+
FileUtils.cp_r "#{bin_dir}/proto", base_dir
|
36
|
+
ll_r(base_dir) { |f| FileUtils.rm_rf(f) if /\.svn$/ =~ f }
|
37
|
+
|
38
|
+
=begin
|
39
|
+
Unix implementation
|
19
40
|
%x{
|
20
41
|
cp -R #{bin_dir}/proto #{base_dir}
|
21
42
|
find #{base_dir} | grep "\.svn$" | xargs rm -rf
|
22
43
|
}
|
44
|
+
=end
|
23
45
|
|
24
46
|
else
|
25
47
|
|
data/bin/new_form.rb
ADDED
@@ -0,0 +1,54 @@
|
|
1
|
+
#! /usr/bin/env ruby
|
2
|
+
|
3
|
+
# = New Form Wizzard
|
4
|
+
#
|
5
|
+
# Leverages the FormBuilder functionality to generate a scaffold
|
6
|
+
# form for the given managed object
|
7
|
+
#
|
8
|
+
# Example usage:
|
9
|
+
#
|
10
|
+
# ./new_form.rb N::Article lib/articles.rb [article_form.xhtml]
|
11
|
+
#
|
12
|
+
# code:
|
13
|
+
# * George Moschovitis <gm@navel.gr>
|
14
|
+
#
|
15
|
+
# (c) 2004 Navel, all rights reserved.
|
16
|
+
# $Id: new_app.rb 188 2004-12-10 14:14:17Z gmosx $
|
17
|
+
|
18
|
+
$LOAD_PATH.unshift 'lib'
|
19
|
+
|
20
|
+
require 'glue/property'
|
21
|
+
require 'glue/inflector'
|
22
|
+
require 'nitro/builders/form'
|
23
|
+
require 'og'
|
24
|
+
|
25
|
+
def die(str)
|
26
|
+
puts str
|
27
|
+
exit!
|
28
|
+
end
|
29
|
+
|
30
|
+
if klass_name = ARGV[0] and lib_filename = ARGV[1]
|
31
|
+
|
32
|
+
require lib_filename
|
33
|
+
klass = nil
|
34
|
+
eval "klass = #{klass_name}"
|
35
|
+
dst_dir = File.dirname(lib_filename)
|
36
|
+
dst_filename = ARGV[3] || File.join(dst_dir, "#{G::Inflector.name(klass_name)}_form.xhtml")
|
37
|
+
|
38
|
+
# p klass, lib_filename, dst_filename
|
39
|
+
|
40
|
+
form = N::FormBuilder.render(klass.new)
|
41
|
+
|
42
|
+
File.open(dst_filename, 'w') do |file|
|
43
|
+
file.write(form)
|
44
|
+
end
|
45
|
+
|
46
|
+
else
|
47
|
+
|
48
|
+
puts %{
|
49
|
+
USAGE:
|
50
|
+
new_form class_name library_filename [base_filename]
|
51
|
+
}
|
52
|
+
|
53
|
+
end
|
54
|
+
|