dima-ruboss4ruby 1.1.0 → 1.1.1
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/History.txt +2 -2
- data/Manifest.txt +9 -3
- data/README.rdoc +43 -15
- data/Rakefile +9 -4
- data/app_generators/ruboss_app/USAGE +11 -2
- data/app_generators/ruboss_app/ruboss_app_generator.rb +21 -15
- data/app_generators/ruboss_app/templates/app.yaml.erb +12 -0
- data/app_generators/ruboss_app/templates/default_tasks.rake +1 -1
- data/app_generators/ruboss_app/templates/empty.txt +0 -0
- data/app_generators/ruboss_app/templates/generate.rb +1 -5
- data/app_generators/ruboss_app/templates/index.yaml +11 -0
- data/app_generators/ruboss_app/templates/mainair-app.xml +1 -1
- data/bin/ruboss-gen +18 -4
- data/generators/ruboss_config/ruboss_config_generator.rb +0 -5
- data/generators/ruboss_controller/ruboss_controller_generator.rb +15 -10
- data/generators/ruboss_controller/templates/assist.py +65 -0
- data/generators/ruboss_controller/templates/restful.py +136 -0
- data/generators/ruboss_main_app/ruboss_main_app_generator.rb +18 -4
- data/generators/ruboss_main_app/templates/main.py.erb +29 -0
- data/generators/ruboss_main_app/templates/mainapp.mxml +5 -1
- data/generators/ruboss_scaffold/ruboss_scaffold_generator.rb +77 -46
- data/generators/ruboss_scaffold/templates/controller.py.erb +27 -0
- data/generators/ruboss_scaffold/templates/model.as.erb +1 -1
- data/generators/ruboss_scaffold/templates/model.py.erb +14 -0
- data/generators/ruboss_yaml_scaffold/USAGE +42 -4
- data/generators/ruboss_yaml_scaffold/ruboss_yaml_scaffold_generator.rb +8 -4
- data/lib/ruboss4ruby.rb +15 -2
- data/lib/ruboss4ruby/active_foo.rb +32 -3
- data/lib/ruboss4ruby/active_record_default_methods.rb +19 -7
- data/lib/ruboss4ruby/active_record_tasks.rb +9 -3
- data/lib/ruboss4ruby/configuration.rb +32 -0
- data/lib/ruboss4ruby/datamapper_foo.rb +6 -0
- data/lib/ruboss4ruby/rails/recipes.rb +5 -3
- data/lib/ruboss4ruby/rails/swf_helper.rb +1 -0
- data/lib/ruboss4ruby/tasks.rb +5 -0
- data/rails_generators/ruboss_config/ruboss_config_generator.rb +14 -13
- data/rails_generators/ruboss_config/templates/mainair-app.xml +1 -1
- data/rails_generators/ruboss_config/templates/ruboss_tasks.rake +1 -0
- data/rails_generators/ruboss_controller/ruboss_controller_generator.rb +2 -5
- data/rails_generators/ruboss_scaffold/ruboss_scaffold_generator.rb +66 -62
- data/rails_generators/ruboss_scaffold/templates/model.as.erb +1 -1
- data/rails_generators/ruboss_yaml_scaffold/USAGE +38 -1
- data/rails_generators/ruboss_yaml_scaffold/ruboss_yaml_scaffold_generator.rb +0 -5
- data/rcl-1.0.txt +0 -0
- data/rdoc/generators/template/html/jamis.rb +588 -0
- data/ruboss4ruby.gemspec +12 -12
- metadata +15 -26
@@ -1,3 +1,5 @@
|
|
1
|
+
require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'ruboss4ruby') if !defined?(Ruboss4Ruby)
|
2
|
+
|
1
3
|
module Rails
|
2
4
|
module Generator
|
3
5
|
class GeneratedAttribute
|
@@ -11,50 +13,51 @@ module Rails
|
|
11
13
|
|
12
14
|
def field_type
|
13
15
|
@field_type ||= case type
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
16
|
+
when :integer, :float, :decimal then :text_field
|
17
|
+
when :datetime, :timestamp, :time then :datetime_select
|
18
|
+
when :date then :date_select
|
19
|
+
when :string then :text_field
|
20
|
+
when :text then :text_area
|
21
|
+
when :boolean then :check_box
|
22
|
+
else
|
23
|
+
:text_field
|
22
24
|
end
|
23
25
|
end
|
24
26
|
|
25
27
|
def default(prefix = '')
|
26
28
|
@default = case type
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
|
29
|
+
when :integer then 1
|
30
|
+
when :float then 1.5
|
31
|
+
when :decimal then "9.99"
|
32
|
+
when :datetime, :timestamp, :time then Time.now.to_s(:db)
|
33
|
+
when :date then Date.today.to_s(:db)
|
34
|
+
when :string then prefix + name.camelize + "String"
|
35
|
+
when :text then prefix + name.camelize + "Text"
|
36
|
+
when :boolean then false
|
37
|
+
else
|
38
|
+
""
|
37
39
|
end
|
38
40
|
end
|
39
41
|
|
40
42
|
def flex_type
|
41
43
|
@flex_type = case type
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
47
|
-
|
44
|
+
when :integer then 'int'
|
45
|
+
when :date, :datetime, :time then 'Date'
|
46
|
+
when :boolean then 'Boolean'
|
47
|
+
when :float, :decimal then 'Number'
|
48
|
+
else
|
49
|
+
'String'
|
48
50
|
end
|
49
51
|
end
|
50
|
-
|
51
|
-
def flex_default
|
52
|
+
|
53
|
+
def flex_default
|
52
54
|
@flex_default = case type
|
53
|
-
|
54
|
-
|
55
|
-
|
56
|
-
|
57
|
-
|
55
|
+
when :integer then '0'
|
56
|
+
when :date, :datetime, :time then 'new Date'
|
57
|
+
when :boolean then 'false'
|
58
|
+
when :float, :decimal then 'new Number'
|
59
|
+
else
|
60
|
+
"\"\""
|
58
61
|
end
|
59
62
|
end
|
60
63
|
end
|
@@ -83,9 +86,7 @@ class RubossScaffoldGenerator < Rails::Generator::NamedBase
|
|
83
86
|
:controller_underscore_name,
|
84
87
|
:controller_singular_name,
|
85
88
|
:controller_plural_name
|
86
|
-
|
87
|
-
attr_accessor :constructor_args
|
88
|
-
|
89
|
+
|
89
90
|
alias_method :controller_file_name, :controller_underscore_name
|
90
91
|
alias_method :controller_table_name, :controller_plural_name
|
91
92
|
|
@@ -104,28 +105,7 @@ class RubossScaffoldGenerator < Rails::Generator::NamedBase
|
|
104
105
|
else
|
105
106
|
@controller_class_name = "#{@controller_class_nesting}::#{@controller_class_name_without_nesting}"
|
106
107
|
end
|
107
|
-
|
108
|
-
@belongs_tos = []
|
109
|
-
@has_ones = []
|
110
|
-
@has_manies = []
|
111
|
-
# Figure out has_one, has_many and belongs_to based on args
|
112
|
-
@args.each do |arg|
|
113
|
-
if arg =~ /^has_one:/
|
114
|
-
# arg = "has_one:arg1,arg2", so all the has_one are together
|
115
|
-
@has_ones = arg.split(':')[1].split(',')
|
116
|
-
elsif arg =~ /^has_many:/
|
117
|
-
# arg = "has_many:arg1,arg2", so all the has_many are together
|
118
|
-
@has_manies = arg.split(":")[1].split(",")
|
119
|
-
elsif arg =~ /^belongs_to:/ # belongs_to:arg1,arg2
|
120
|
-
@belongs_tos = arg.split(":")[1].split(',')
|
121
|
-
end
|
122
|
-
end
|
123
|
-
|
124
|
-
# Remove the has_one and has_many arguments since they are
|
125
|
-
# not for consumption by the scaffold generator, and since
|
126
|
-
# we have already used them to set the @belongs_tos, @has_ones and
|
127
|
-
# @has_manies.
|
128
|
-
@args.delete_if { |elt| elt =~ /^(has_one|has_many|belongs_to):/ }
|
108
|
+
extract_relationships
|
129
109
|
end
|
130
110
|
|
131
111
|
def manifest
|
@@ -167,11 +147,35 @@ class RubossScaffoldGenerator < Rails::Generator::NamedBase
|
|
167
147
|
end
|
168
148
|
end
|
169
149
|
|
170
|
-
protected
|
171
|
-
|
172
|
-
|
173
|
-
|
174
|
-
|
175
|
-
|
150
|
+
protected
|
151
|
+
def extract_relationships
|
152
|
+
@belongs_tos = []
|
153
|
+
@has_ones = []
|
154
|
+
@has_manies = []
|
155
|
+
# Figure out has_one, has_many and belongs_to based on args
|
156
|
+
@args.each do |arg|
|
157
|
+
if arg =~ /^has_one:/
|
158
|
+
# arg = "has_one:arg1,arg2", so all the has_one are together
|
159
|
+
@has_ones = arg.split(':')[1].split(',')
|
160
|
+
elsif arg =~ /^has_many:/
|
161
|
+
# arg = "has_many:arg1,arg2", so all the has_many are together
|
162
|
+
@has_manies = arg.split(":")[1].split(",")
|
163
|
+
elsif arg =~ /^belongs_to:/ # belongs_to:arg1,arg2
|
164
|
+
@belongs_tos = arg.split(":")[1].split(',')
|
165
|
+
end
|
176
166
|
end
|
167
|
+
|
168
|
+
# Remove the has_one and has_many arguments since they are
|
169
|
+
# not for consumption by the scaffold generator, and since
|
170
|
+
# we have already used them to set the @belongs_tos, @has_ones and
|
171
|
+
# @has_manies.
|
172
|
+
@args.delete_if { |elt| elt =~ /^(has_one|has_many|belongs_to):/ }
|
173
|
+
end
|
174
|
+
|
175
|
+
def add_options!(opt)
|
176
|
+
opt.separator ''
|
177
|
+
opt.separator 'Options:'
|
178
|
+
opt.on("-f", "--flex-only", "Scaffold Flex code only",
|
179
|
+
"Default: false") { |v| options[:flex_only] = v}
|
180
|
+
end
|
177
181
|
end
|
@@ -17,7 +17,7 @@ package <%= base_package %>.models {
|
|
17
17
|
<% if attribute.type == :datetime || attribute.type == :time -%>
|
18
18
|
[DateTime]
|
19
19
|
<% end -%>
|
20
|
-
public var <%= attribute.flex_name %>:<%= attribute.flex_type %>;
|
20
|
+
public var <%= attribute.flex_name %>:<%= attribute.flex_type %> = <%= attribute.flex_default %>;
|
21
21
|
|
22
22
|
<% end -%>
|
23
23
|
<% for model in belongs_tos -%>
|
@@ -11,4 +11,41 @@ Description:
|
|
11
11
|
editing.
|
12
12
|
|
13
13
|
Examples:
|
14
|
-
`./script/generate ruboss_yaml_scaffold`
|
14
|
+
`./script/generate ruboss_yaml_scaffold`
|
15
|
+
|
16
|
+
Sample Model File:
|
17
|
+
project:
|
18
|
+
- name: string
|
19
|
+
- notes: text
|
20
|
+
- start_date: date
|
21
|
+
- end_date: date
|
22
|
+
- completed: boolean
|
23
|
+
- belongs_to: [user]
|
24
|
+
- has_many: [tasks]
|
25
|
+
|
26
|
+
location:
|
27
|
+
- name: string
|
28
|
+
- notes: text
|
29
|
+
- belongs_to: [user]
|
30
|
+
- has_many: [tasks]
|
31
|
+
|
32
|
+
task:
|
33
|
+
- name: string
|
34
|
+
- notes: text
|
35
|
+
- start_time: datetime
|
36
|
+
- end_time: datetime
|
37
|
+
- completed: boolean
|
38
|
+
- next_action: boolean
|
39
|
+
- belongs_to: [project, location, user]
|
40
|
+
|
41
|
+
note:
|
42
|
+
- content: text
|
43
|
+
- belongs_to: [user]
|
44
|
+
|
45
|
+
user:
|
46
|
+
- login: string
|
47
|
+
- first_name: string
|
48
|
+
- last_name: string
|
49
|
+
- email: string
|
50
|
+
- has_many: [tasks, projects, locations]
|
51
|
+
- has_one: [note]
|
data/rcl-1.0.txt
CHANGED
Binary file
|
@@ -0,0 +1,588 @@
|
|
1
|
+
module RDoc
|
2
|
+
module Page
|
3
|
+
|
4
|
+
FONTS = "\"Bitstream Vera Sans\", Verdana, Arial, Helvetica, sans-serif"
|
5
|
+
|
6
|
+
STYLE = <<CSS
|
7
|
+
a {
|
8
|
+
color: #00F;
|
9
|
+
text-decoration: none;
|
10
|
+
}
|
11
|
+
|
12
|
+
a:hover {
|
13
|
+
color: #77F;
|
14
|
+
text-decoration: underline;
|
15
|
+
}
|
16
|
+
|
17
|
+
body, td, p {
|
18
|
+
font-family: %fonts%;
|
19
|
+
background: #FFF;
|
20
|
+
color: #000;
|
21
|
+
margin: 0px;
|
22
|
+
font-size: small;
|
23
|
+
}
|
24
|
+
|
25
|
+
#content {
|
26
|
+
margin: 2em;
|
27
|
+
}
|
28
|
+
|
29
|
+
#description p {
|
30
|
+
margin-bottom: 0.5em;
|
31
|
+
}
|
32
|
+
|
33
|
+
.sectiontitle {
|
34
|
+
margin-top: 1em;
|
35
|
+
margin-bottom: 1em;
|
36
|
+
padding: 0.5em;
|
37
|
+
padding-left: 2em;
|
38
|
+
background: #005;
|
39
|
+
color: #FFF;
|
40
|
+
font-weight: bold;
|
41
|
+
border: 1px dotted black;
|
42
|
+
}
|
43
|
+
|
44
|
+
.attr-rw {
|
45
|
+
padding-left: 1em;
|
46
|
+
padding-right: 1em;
|
47
|
+
text-align: center;
|
48
|
+
color: #055;
|
49
|
+
}
|
50
|
+
|
51
|
+
.attr-name {
|
52
|
+
font-weight: bold;
|
53
|
+
}
|
54
|
+
|
55
|
+
.attr-desc {
|
56
|
+
}
|
57
|
+
|
58
|
+
.attr-value {
|
59
|
+
font-family: monospace;
|
60
|
+
}
|
61
|
+
|
62
|
+
.file-title-prefix {
|
63
|
+
font-size: large;
|
64
|
+
}
|
65
|
+
|
66
|
+
.file-title {
|
67
|
+
font-size: large;
|
68
|
+
font-weight: bold;
|
69
|
+
background: #005;
|
70
|
+
color: #FFF;
|
71
|
+
}
|
72
|
+
|
73
|
+
.banner {
|
74
|
+
background: #005;
|
75
|
+
color: #FFF;
|
76
|
+
border: 1px solid black;
|
77
|
+
padding: 1em;
|
78
|
+
}
|
79
|
+
|
80
|
+
.banner td {
|
81
|
+
background: transparent;
|
82
|
+
color: #FFF;
|
83
|
+
}
|
84
|
+
|
85
|
+
h1 a, h2 a, .sectiontitle a, .banner a {
|
86
|
+
color: #FF0;
|
87
|
+
}
|
88
|
+
|
89
|
+
h1 a:hover, h2 a:hover, .sectiontitle a:hover, .banner a:hover {
|
90
|
+
color: #FF7;
|
91
|
+
}
|
92
|
+
|
93
|
+
.dyn-source {
|
94
|
+
display: none;
|
95
|
+
background: #FFE;
|
96
|
+
color: #000;
|
97
|
+
border: 1px dotted black;
|
98
|
+
margin: 0.5em 2em 0.5em 2em;
|
99
|
+
padding: 0.5em;
|
100
|
+
}
|
101
|
+
|
102
|
+
.dyn-source .cmt {
|
103
|
+
color: #00F;
|
104
|
+
font-style: italic;
|
105
|
+
}
|
106
|
+
|
107
|
+
.dyn-source .kw {
|
108
|
+
color: #070;
|
109
|
+
font-weight: bold;
|
110
|
+
}
|
111
|
+
|
112
|
+
.method {
|
113
|
+
margin-left: 1em;
|
114
|
+
margin-right: 1em;
|
115
|
+
margin-bottom: 1em;
|
116
|
+
}
|
117
|
+
|
118
|
+
.description pre {
|
119
|
+
padding: 0.5em;
|
120
|
+
border: 1px dotted black;
|
121
|
+
background: #FFE;
|
122
|
+
}
|
123
|
+
|
124
|
+
.method .title {
|
125
|
+
font-family: monospace;
|
126
|
+
font-size: large;
|
127
|
+
border-bottom: 1px dashed black;
|
128
|
+
margin-bottom: 0.3em;
|
129
|
+
padding-bottom: 0.1em;
|
130
|
+
}
|
131
|
+
|
132
|
+
.method .description, .method .sourcecode {
|
133
|
+
margin-left: 1em;
|
134
|
+
}
|
135
|
+
|
136
|
+
.description p, .sourcecode p {
|
137
|
+
margin-bottom: 0.5em;
|
138
|
+
}
|
139
|
+
|
140
|
+
.method .sourcecode p.source-link {
|
141
|
+
text-indent: 0em;
|
142
|
+
margin-top: 0.5em;
|
143
|
+
}
|
144
|
+
|
145
|
+
.method .aka {
|
146
|
+
margin-top: 0.3em;
|
147
|
+
margin-left: 1em;
|
148
|
+
font-style: italic;
|
149
|
+
text-indent: 2em;
|
150
|
+
}
|
151
|
+
|
152
|
+
h1 {
|
153
|
+
padding: 1em;
|
154
|
+
border: 1px solid black;
|
155
|
+
font-size: x-large;
|
156
|
+
font-weight: bold;
|
157
|
+
color: #FFF;
|
158
|
+
background: #007;
|
159
|
+
}
|
160
|
+
|
161
|
+
h2 {
|
162
|
+
padding: 0.5em 1em 0.5em 1em;
|
163
|
+
border: 1px solid black;
|
164
|
+
font-size: large;
|
165
|
+
font-weight: bold;
|
166
|
+
color: #FFF;
|
167
|
+
background: #009;
|
168
|
+
}
|
169
|
+
|
170
|
+
h3, h4, h5, h6 {
|
171
|
+
padding: 0.2em 1em 0.2em 1em;
|
172
|
+
border: 1px dashed black;
|
173
|
+
color: #000;
|
174
|
+
background: #AAF;
|
175
|
+
}
|
176
|
+
|
177
|
+
.sourcecode > pre {
|
178
|
+
padding: 0.5em;
|
179
|
+
border: 1px dotted black;
|
180
|
+
background: #FFE;
|
181
|
+
}
|
182
|
+
|
183
|
+
CSS
|
184
|
+
|
185
|
+
XHTML_PREAMBLE = %{<?xml version="1.0" encoding="%charset%"?>
|
186
|
+
<!DOCTYPE html
|
187
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
|
188
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
189
|
+
}
|
190
|
+
|
191
|
+
XHTML_FRAMESET_PREAMBLE = %{
|
192
|
+
<!DOCTYPE html
|
193
|
+
PUBLIC "-//W3C//DTD XHTML 1.0 Frameset//EN"
|
194
|
+
"http://www.w3.org/TR/xhtml1/DTD/xhtml1-frameset.dtd">
|
195
|
+
}
|
196
|
+
|
197
|
+
HEADER = XHTML_PREAMBLE + <<ENDHEADER
|
198
|
+
<html>
|
199
|
+
<head>
|
200
|
+
<title>%title%</title>
|
201
|
+
<meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
|
202
|
+
<link rel="stylesheet" href="%style_url%" type="text/css" media="screen" />
|
203
|
+
|
204
|
+
<script language="JavaScript" type="text/javascript">
|
205
|
+
// <![CDATA[
|
206
|
+
|
207
|
+
function toggleSource( id )
|
208
|
+
{
|
209
|
+
var elem
|
210
|
+
var link
|
211
|
+
|
212
|
+
if( document.getElementById )
|
213
|
+
{
|
214
|
+
elem = document.getElementById( id )
|
215
|
+
link = document.getElementById( "l_" + id )
|
216
|
+
}
|
217
|
+
else if ( document.all )
|
218
|
+
{
|
219
|
+
elem = eval( "document.all." + id )
|
220
|
+
link = eval( "document.all.l_" + id )
|
221
|
+
}
|
222
|
+
else
|
223
|
+
return false;
|
224
|
+
|
225
|
+
if( elem.style.display == "block" )
|
226
|
+
{
|
227
|
+
elem.style.display = "none"
|
228
|
+
link.innerHTML = "show source"
|
229
|
+
}
|
230
|
+
else
|
231
|
+
{
|
232
|
+
elem.style.display = "block"
|
233
|
+
link.innerHTML = "hide source"
|
234
|
+
}
|
235
|
+
}
|
236
|
+
|
237
|
+
function openCode( url )
|
238
|
+
{
|
239
|
+
window.open( url, "SOURCE_CODE", "resizable=yes,scrollbars=yes,toolbar=no,status=no,height=480,width=750" ).focus();
|
240
|
+
}
|
241
|
+
// ]]>
|
242
|
+
</script>
|
243
|
+
</head>
|
244
|
+
|
245
|
+
<body>
|
246
|
+
ENDHEADER
|
247
|
+
|
248
|
+
FILE_PAGE = <<HTML
|
249
|
+
<table border='0' cellpadding='0' cellspacing='0' width="100%" class='banner'>
|
250
|
+
<tr><td>
|
251
|
+
<table width="100%" border='0' cellpadding='0' cellspacing='0'><tr>
|
252
|
+
<td class="file-title" colspan="2"><span class="file-title-prefix">File</span><br />%short_name%</td>
|
253
|
+
<td align="right">
|
254
|
+
<table border='0' cellspacing="0" cellpadding="2">
|
255
|
+
<tr>
|
256
|
+
<td>Path:</td>
|
257
|
+
<td>%full_path%
|
258
|
+
IF:cvsurl
|
259
|
+
(<a href="%cvsurl%">CVS</a>)
|
260
|
+
ENDIF:cvsurl
|
261
|
+
</td>
|
262
|
+
</tr>
|
263
|
+
<tr>
|
264
|
+
<td>Modified:</td>
|
265
|
+
<td>%dtm_modified%</td>
|
266
|
+
</tr>
|
267
|
+
</table>
|
268
|
+
</td></tr>
|
269
|
+
</table>
|
270
|
+
</td></tr>
|
271
|
+
</table><br />
|
272
|
+
HTML
|
273
|
+
|
274
|
+
###################################################################
|
275
|
+
|
276
|
+
CLASS_PAGE = <<HTML
|
277
|
+
<table width="100%" border='0' cellpadding='0' cellspacing='0' class='banner'><tr>
|
278
|
+
<td class="file-title"><span class="file-title-prefix">%classmod%</span><br />%full_name%</td>
|
279
|
+
<td align="right">
|
280
|
+
<table cellspacing="0" cellpadding="2">
|
281
|
+
<tr valign="top">
|
282
|
+
<td>In:</td>
|
283
|
+
<td>
|
284
|
+
START:infiles
|
285
|
+
HREF:full_path_url:full_path:
|
286
|
+
IF:cvsurl
|
287
|
+
(<a href="%cvsurl%">CVS</a>)
|
288
|
+
ENDIF:cvsurl
|
289
|
+
END:infiles
|
290
|
+
</td>
|
291
|
+
</tr>
|
292
|
+
IF:parent
|
293
|
+
<tr>
|
294
|
+
<td>Parent:</td>
|
295
|
+
<td>
|
296
|
+
IF:par_url
|
297
|
+
<a href="%par_url%">
|
298
|
+
ENDIF:par_url
|
299
|
+
%parent%
|
300
|
+
IF:par_url
|
301
|
+
</a>
|
302
|
+
ENDIF:par_url
|
303
|
+
</td>
|
304
|
+
</tr>
|
305
|
+
ENDIF:parent
|
306
|
+
</table>
|
307
|
+
</td>
|
308
|
+
</tr>
|
309
|
+
</table>
|
310
|
+
HTML
|
311
|
+
|
312
|
+
###################################################################
|
313
|
+
|
314
|
+
METHOD_LIST = <<HTML
|
315
|
+
<div id="content">
|
316
|
+
IF:diagram
|
317
|
+
<table cellpadding='0' cellspacing='0' border='0' width="100%"><tr><td align="center">
|
318
|
+
%diagram%
|
319
|
+
</td></tr></table>
|
320
|
+
ENDIF:diagram
|
321
|
+
|
322
|
+
IF:description
|
323
|
+
<div class="description">%description%</div>
|
324
|
+
ENDIF:description
|
325
|
+
|
326
|
+
IF:requires
|
327
|
+
<div class="sectiontitle">Required Files</div>
|
328
|
+
<ul>
|
329
|
+
START:requires
|
330
|
+
<li>HREF:aref:name:</li>
|
331
|
+
END:requires
|
332
|
+
</ul>
|
333
|
+
ENDIF:requires
|
334
|
+
|
335
|
+
IF:toc
|
336
|
+
<div class="sectiontitle">Contents</div>
|
337
|
+
<ul>
|
338
|
+
START:toc
|
339
|
+
<li><a href="#%href%">%secname%</a></li>
|
340
|
+
END:toc
|
341
|
+
</ul>
|
342
|
+
ENDIF:toc
|
343
|
+
|
344
|
+
IF:methods
|
345
|
+
<div class="sectiontitle">Methods</div>
|
346
|
+
<ul>
|
347
|
+
START:methods
|
348
|
+
<li>HREF:aref:name:</li>
|
349
|
+
END:methods
|
350
|
+
</ul>
|
351
|
+
ENDIF:methods
|
352
|
+
|
353
|
+
IF:includes
|
354
|
+
<div class="sectiontitle">Included Modules</div>
|
355
|
+
<ul>
|
356
|
+
START:includes
|
357
|
+
<li>HREF:aref:name:</li>
|
358
|
+
END:includes
|
359
|
+
</ul>
|
360
|
+
ENDIF:includes
|
361
|
+
|
362
|
+
START:sections
|
363
|
+
IF:sectitle
|
364
|
+
<div class="sectiontitle"><a name="%secsequence%">%sectitle%</a></div>
|
365
|
+
IF:seccomment
|
366
|
+
<div class="description">
|
367
|
+
%seccomment%
|
368
|
+
</div>
|
369
|
+
ENDIF:seccomment
|
370
|
+
ENDIF:sectitle
|
371
|
+
|
372
|
+
IF:classlist
|
373
|
+
<div class="sectiontitle">Classes and Modules</div>
|
374
|
+
%classlist%
|
375
|
+
ENDIF:classlist
|
376
|
+
|
377
|
+
IF:constants
|
378
|
+
<div class="sectiontitle">Constants</div>
|
379
|
+
<table border='0' cellpadding='5'>
|
380
|
+
START:constants
|
381
|
+
<tr valign='top'>
|
382
|
+
<td class="attr-name">%name%</td>
|
383
|
+
<td>=</td>
|
384
|
+
<td class="attr-value">%value%</td>
|
385
|
+
</tr>
|
386
|
+
IF:desc
|
387
|
+
<tr valign='top'>
|
388
|
+
<td> </td>
|
389
|
+
<td colspan="2" class="attr-desc">%desc%</td>
|
390
|
+
</tr>
|
391
|
+
ENDIF:desc
|
392
|
+
END:constants
|
393
|
+
</table>
|
394
|
+
ENDIF:constants
|
395
|
+
|
396
|
+
IF:attributes
|
397
|
+
<div class="sectiontitle">Attributes</div>
|
398
|
+
<table border='0' cellpadding='5'>
|
399
|
+
START:attributes
|
400
|
+
<tr valign='top'>
|
401
|
+
<td class='attr-rw'>
|
402
|
+
IF:rw
|
403
|
+
[%rw%]
|
404
|
+
ENDIF:rw
|
405
|
+
</td>
|
406
|
+
<td class='attr-name'>%name%</td>
|
407
|
+
<td class='attr-desc'>%a_desc%</td>
|
408
|
+
</tr>
|
409
|
+
END:attributes
|
410
|
+
</table>
|
411
|
+
ENDIF:attributes
|
412
|
+
|
413
|
+
IF:method_list
|
414
|
+
START:method_list
|
415
|
+
IF:methods
|
416
|
+
<div class="sectiontitle">%type% %category% methods</div>
|
417
|
+
START:methods
|
418
|
+
<div class="method">
|
419
|
+
<div class="title">
|
420
|
+
IF:callseq
|
421
|
+
<a name="%aref%"></a><b>%callseq%</b>
|
422
|
+
ENDIF:callseq
|
423
|
+
IFNOT:callseq
|
424
|
+
<a name="%aref%"></a><b>%name%</b>%params%
|
425
|
+
ENDIF:callseq
|
426
|
+
IF:codeurl
|
427
|
+
[ <a href="%codeurl%" target="SOURCE_CODE" onclick="javascript:openCode('%codeurl%'); return false;">source</a> ]
|
428
|
+
ENDIF:codeurl
|
429
|
+
</div>
|
430
|
+
IF:m_desc
|
431
|
+
<div class="description">
|
432
|
+
%m_desc%
|
433
|
+
</div>
|
434
|
+
ENDIF:m_desc
|
435
|
+
IF:aka
|
436
|
+
<div class="aka">
|
437
|
+
This method is also aliased as
|
438
|
+
START:aka
|
439
|
+
<a href="%aref%">%name%</a>
|
440
|
+
END:aka
|
441
|
+
</div>
|
442
|
+
ENDIF:aka
|
443
|
+
IF:sourcecode
|
444
|
+
<div class="sourcecode">
|
445
|
+
<p class="source-link">[ <a href="javascript:toggleSource('%aref%_source')" id="l_%aref%_source">show source</a> ]</p>
|
446
|
+
<div id="%aref%_source" class="dyn-source">
|
447
|
+
<pre>
|
448
|
+
%sourcecode%
|
449
|
+
</pre>
|
450
|
+
</div>
|
451
|
+
</div>
|
452
|
+
ENDIF:sourcecode
|
453
|
+
</div>
|
454
|
+
END:methods
|
455
|
+
ENDIF:methods
|
456
|
+
END:method_list
|
457
|
+
ENDIF:method_list
|
458
|
+
END:sections
|
459
|
+
</div>
|
460
|
+
HTML
|
461
|
+
|
462
|
+
FOOTER = <<ENDFOOTER
|
463
|
+
</body>
|
464
|
+
</html>
|
465
|
+
ENDFOOTER
|
466
|
+
|
467
|
+
BODY = HEADER + <<ENDBODY
|
468
|
+
!INCLUDE! <!-- banner header -->
|
469
|
+
|
470
|
+
<div id="bodyContent">
|
471
|
+
#{METHOD_LIST}
|
472
|
+
</div>
|
473
|
+
|
474
|
+
#{FOOTER}
|
475
|
+
ENDBODY
|
476
|
+
|
477
|
+
########################## Source code ##########################
|
478
|
+
|
479
|
+
SRC_PAGE = XHTML_PREAMBLE + <<HTML
|
480
|
+
<html>
|
481
|
+
<head><title>%title%</title>
|
482
|
+
<meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
|
483
|
+
<style type="text/css">
|
484
|
+
.ruby-comment { color: green; font-style: italic }
|
485
|
+
.ruby-constant { color: #4433aa; font-weight: bold; }
|
486
|
+
.ruby-identifier { color: #222222; }
|
487
|
+
.ruby-ivar { color: #2233dd; }
|
488
|
+
.ruby-keyword { color: #3333FF; font-weight: bold }
|
489
|
+
.ruby-node { color: #777777; }
|
490
|
+
.ruby-operator { color: #111111; }
|
491
|
+
.ruby-regexp { color: #662222; }
|
492
|
+
.ruby-value { color: #662222; font-style: italic }
|
493
|
+
.kw { color: #3333FF; font-weight: bold }
|
494
|
+
.cmt { color: green; font-style: italic }
|
495
|
+
.str { color: #662222; font-style: italic }
|
496
|
+
.re { color: #662222; }
|
497
|
+
</style>
|
498
|
+
</head>
|
499
|
+
<body bgcolor="white">
|
500
|
+
<pre>%code%</pre>
|
501
|
+
</body>
|
502
|
+
</html>
|
503
|
+
HTML
|
504
|
+
|
505
|
+
########################## Index ################################
|
506
|
+
|
507
|
+
FR_INDEX_BODY = <<HTML
|
508
|
+
!INCLUDE!
|
509
|
+
HTML
|
510
|
+
|
511
|
+
FILE_INDEX = XHTML_PREAMBLE + <<HTML
|
512
|
+
<html>
|
513
|
+
<head>
|
514
|
+
<meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
|
515
|
+
<title>Index</title>
|
516
|
+
<style type="text/css">
|
517
|
+
<!--
|
518
|
+
body {
|
519
|
+
background-color: #EEE;
|
520
|
+
font-family: #{FONTS};
|
521
|
+
color: #000;
|
522
|
+
margin: 0px;
|
523
|
+
}
|
524
|
+
.banner {
|
525
|
+
background: #005;
|
526
|
+
color: #FFF;
|
527
|
+
padding: 0.2em;
|
528
|
+
font-size: small;
|
529
|
+
font-weight: bold;
|
530
|
+
text-align: center;
|
531
|
+
}
|
532
|
+
.entries {
|
533
|
+
margin: 0.25em 1em 0 1em;
|
534
|
+
font-size: x-small;
|
535
|
+
}
|
536
|
+
a {
|
537
|
+
color: #00F;
|
538
|
+
text-decoration: none;
|
539
|
+
white-space: nowrap;
|
540
|
+
}
|
541
|
+
a:hover {
|
542
|
+
color: #77F;
|
543
|
+
text-decoration: underline;
|
544
|
+
}
|
545
|
+
-->
|
546
|
+
</style>
|
547
|
+
<base target="docwin" />
|
548
|
+
</head>
|
549
|
+
<body>
|
550
|
+
<div class="banner">%list_title%</div>
|
551
|
+
<div class="entries">
|
552
|
+
START:entries
|
553
|
+
<a href="%href%">%name%</a><br />
|
554
|
+
END:entries
|
555
|
+
</div>
|
556
|
+
</body></html>
|
557
|
+
HTML
|
558
|
+
|
559
|
+
CLASS_INDEX = FILE_INDEX
|
560
|
+
METHOD_INDEX = FILE_INDEX
|
561
|
+
|
562
|
+
INDEX = XHTML_FRAMESET_PREAMBLE + <<HTML
|
563
|
+
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
|
564
|
+
<head>
|
565
|
+
<title>%title%</title>
|
566
|
+
<meta http-equiv="Content-Type" content="text/html; charset=%charset%" />
|
567
|
+
</head>
|
568
|
+
|
569
|
+
<frameset cols="20%,*">
|
570
|
+
<frameset rows="15%,35%,50%">
|
571
|
+
<frame src="fr_file_index.html" title="Files" name="Files" />
|
572
|
+
<frame src="fr_class_index.html" name="Classes" />
|
573
|
+
<frame src="fr_method_index.html" name="Methods" />
|
574
|
+
</frameset>
|
575
|
+
<frame src="%initial_page%" name="docwin" />
|
576
|
+
<noframes>
|
577
|
+
<body bgcolor="white">
|
578
|
+
Click <a href="html/index.html">here</a> for a non-frames
|
579
|
+
version of this page.
|
580
|
+
</body>
|
581
|
+
</noframes>
|
582
|
+
</frameset>
|
583
|
+
|
584
|
+
</html>
|
585
|
+
HTML
|
586
|
+
|
587
|
+
end
|
588
|
+
end
|