dima-restfulx 1.2.1 → 1.2.2

Sign up to get free protection for your applications and to get access to all the features.
Files changed (80) hide show
  1. data/Rakefile +65 -30
  2. data/VERSION.yml +4 -0
  3. data/app_generators/rx_app/rx_app_generator.rb +25 -9
  4. data/app_generators/rx_app/templates/actionscript.properties +3 -3
  5. data/app_generators/rx_app/templates/actionscriptair.properties +3 -3
  6. data/app_generators/rx_app/templates/app.yaml.erb +1 -1
  7. data/app_generators/rx_app/templates/default_tasks.rake +5 -18
  8. data/app_generators/rx_app/templates/generate.rb +1 -1
  9. data/app_generators/rx_app/templates/index.html.erb +1 -1
  10. data/app_generators/rx_app/templates/mainair-app.xml +3 -3
  11. data/app_generators/rx_app/templates/mainapp.mxml +107 -2
  12. data/app_generators/rx_app/templates/project-textmate.erb +4 -4
  13. data/app_generators/rx_app/templates/project.properties +1 -1
  14. data/app_generators/rx_app/templates/projectair.properties +1 -1
  15. data/app_generators/rx_app/templates/restfulx.yml +61 -0
  16. data/lib/restfulx/active_foo.rb +0 -7
  17. data/lib/restfulx/active_record_tasks.rb +10 -0
  18. data/lib/restfulx/configuration.rb +15 -10
  19. data/lib/restfulx/rails/swf_helper.rb +1 -1
  20. data/lib/restfulx/schema_to_yaml/extensions/enumerable.rb +7 -0
  21. data/lib/restfulx/schema_to_yaml/settings/config.rb +16 -0
  22. data/lib/restfulx/schema_to_yaml/settings/core.rb +70 -0
  23. data/lib/restfulx/schema_to_yaml.rb +120 -0
  24. data/lib/restfulx/tasks.rb +68 -42
  25. data/lib/restfulx/uuid_helper.rb +15 -0
  26. data/lib/restfulx.rb +5 -28
  27. data/rails_generators/rx_config/USAGE +2 -1
  28. data/rails_generators/rx_config/rx_config_generator.rb +78 -53
  29. data/rails_generators/rx_config/templates/actionscript.properties +3 -3
  30. data/rails_generators/rx_config/templates/actionscriptair.properties +3 -3
  31. data/rails_generators/rx_config/templates/flex_controller.erb +4 -0
  32. data/rails_generators/rx_config/templates/{index.html.erb → index.erb} +2 -4
  33. data/rails_generators/rx_config/templates/mainair-app.xml +3 -3
  34. data/rails_generators/rx_config/templates/mainapp.mxml +100 -2
  35. data/rails_generators/rx_config/templates/project-textmate.erb +4 -4
  36. data/rails_generators/rx_config/templates/project.properties +1 -1
  37. data/rails_generators/rx_config/templates/projectair.properties +1 -1
  38. data/rails_generators/rx_config/templates/restfulx.erb +39 -0
  39. data/rails_generators/rx_config/templates/restfulx.yml +51 -4
  40. data/rails_generators/rx_config/templates/restfulx_tasks.rake +3 -0
  41. data/rails_generators/rx_config/templates/routes.erb +47 -0
  42. data/rails_generators/rx_controller/rx_controller_generator.rb +9 -6
  43. data/rails_generators/rx_controller/templates/controller.as.erb +7 -9
  44. data/{generators → rails_generators}/rx_main_app/USAGE +0 -0
  45. data/rails_generators/rx_main_app/rx_main_app_generator.rb +60 -0
  46. data/rails_generators/rx_main_app/templates/mainapp.mxml +129 -0
  47. data/rails_generators/rx_scaffold/rx_scaffold_generator.rb +89 -35
  48. data/rails_generators/rx_scaffold/templates/{controller.rb.erb → controllers/default.rb.erb} +29 -1
  49. data/rails_generators/rx_scaffold/templates/controllers/resource_controller.rb.erb +23 -0
  50. data/rails_generators/rx_scaffold/templates/fixtures.yml.erb +9 -5
  51. data/{generators/rx_scaffold/templates/component.mxml.erb → rails_generators/rx_scaffold/templates/layouts/default.erb} +75 -59
  52. data/rails_generators/rx_scaffold/templates/migration.rb.erb +29 -2
  53. data/rails_generators/rx_scaffold/templates/model.as.erb +33 -2
  54. data/rails_generators/rx_scaffold/templates/model.rb.erb +36 -1
  55. data/rails_generators/rx_yaml_scaffold/rx_yaml_scaffold_generator.rb +29 -10
  56. data/{generators → rxgen_generators}/rx_config/USAGE +0 -0
  57. data/{generators → rxgen_generators}/rx_config/rx_config_generator.rb +0 -0
  58. data/{generators → rxgen_generators}/rx_controller/USAGE +0 -0
  59. data/{generators → rxgen_generators}/rx_controller/rx_controller_generator.rb +6 -5
  60. data/{generators → rxgen_generators}/rx_controller/templates/assist.py +2 -2
  61. data/{generators → rxgen_generators}/rx_controller/templates/controller.as.erb +8 -6
  62. data/{generators → rxgen_generators}/rx_controller/templates/restful.py +0 -0
  63. data/rxgen_generators/rx_main_app/USAGE +8 -0
  64. data/{generators → rxgen_generators}/rx_main_app/rx_main_app_generator.rb +10 -5
  65. data/{generators → rxgen_generators}/rx_main_app/templates/main.py.erb +0 -0
  66. data/rxgen_generators/rx_main_app/templates/mainapp.mxml +136 -0
  67. data/{generators → rxgen_generators}/rx_scaffold/USAGE +0 -0
  68. data/{generators → rxgen_generators}/rx_scaffold/rx_scaffold_generator.rb +5 -4
  69. data/{rails_generators → rxgen_generators}/rx_scaffold/templates/component.mxml.erb +24 -52
  70. data/{generators → rxgen_generators}/rx_scaffold/templates/controller.py.erb +1 -1
  71. data/{generators → rxgen_generators}/rx_scaffold/templates/model.as.erb +0 -0
  72. data/{generators → rxgen_generators}/rx_scaffold/templates/model.py.erb +0 -0
  73. data/{generators → rxgen_generators}/rx_yaml_scaffold/USAGE +0 -0
  74. data/{generators → rxgen_generators}/rx_yaml_scaffold/rx_yaml_scaffold_generator.rb +0 -0
  75. metadata +104 -66
  76. data/History.txt +0 -7
  77. data/Manifest.txt +0 -127
  78. data/generators/rx_main_app/templates/mainapp.mxml +0 -35
  79. data/rdoc/generators/template/html/jamis.rb +0 -588
  80. data/test/rails/playing_around_in_a_console.txt +0 -71
@@ -1,588 +0,0 @@
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
- &nbsp;(<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
- &nbsp;(<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>&nbsp;</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
- [&nbsp;<a href="%codeurl%" target="SOURCE_CODE" onclick="javascript:openCode('%codeurl%'); return false;">source</a>&nbsp;]
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
@@ -1,71 +0,0 @@
1
- To play with the test models in a console, do this:
2
-
3
- $> irb -r test/helpers/test_helper.rb -r test/helpers/unit_test_helper.rb
4
-
5
- You can then do things like this:
6
-
7
- $> irb -r test/helpers/test_helper.rb -r test/helpers/unit_test_helper.rb
8
- -- create_table("locations", {:force=>true})
9
- -> 0.0170s
10
- -- create_table("notes", {:force=>true})
11
- -> 0.0091s
12
- -- create_table("projects", {:force=>true})
13
- -> 0.0091s
14
- -- create_table("tasks", {:force=>true})
15
- -> 0.0098s
16
- -- create_table("users", {:force=>true})
17
- -> 0.0506s
18
- -- initialize_schema_migrations_table()
19
- -> 0.0010s
20
- -- assume_migrated_upto_version(20080729045550)
21
- -> 0.0009s
22
- >> u = User.create(:login => 'spatten')
23
- => #<User id: 1, login: "spatten", first_name: nil, last_name: nil, email: nil, created_at: "2008-10-15 17:29:36", updated_at: "2008-10-15 17:29:36">
24
- >> u.tasks << Task.create
25
- => [#<Task id: 1, name: nil, notes: nil, start_time: nil, end_time: nil, completed: nil, next_action: nil, project_id: nil, location_id: nil, user_id: 1, created_at: "2008-10-15 17:29:48", updated_at: "2008-10-15 17:29:48">]
26
- >> u.projects << Project.create
27
- => [#<Project id: 1, name: nil, notes: nil, start_date: nil, end_date: nil, completed: nil, user_id: 1, created_at: "2008-10-15 17:29:54", updated_at: "2008-10-15 17:29:54">]
28
- >> puts u.to_fxml
29
- <?xml version="1.0" encoding="UTF-8"?>
30
- <user>
31
- <created_at type="datetime">2008/10/15 17:29:36</created_at>
32
- <email nil="true"></email>
33
- <first_name nil="true"></first_name>
34
- <id type="integer">1</id>
35
- <last_name nil="true"></last_name>
36
- <login>spatten</login>
37
- <updated_at type="datetime">2008/10/15 17:29:36</updated_at>
38
- <full_name> </full_name>
39
- <has_nothing_to_do type="boolean">false</has_nothing_to_do>
40
- <tasks type="array">
41
- <task>
42
- <completed type="boolean" nil="true"></completed>
43
- <created_at type="datetime">2008/10/15 17:29:48</created_at>
44
- <end_time type="datetime" nil="true"></end_time>
45
- <id type="integer">1</id>
46
- <location_id type="integer" nil="true"></location_id>
47
- <name nil="true"></name>
48
- <next_action type="boolean" nil="true"></next_action>
49
- <notes nil="true"></notes>
50
- <project_id type="integer" nil="true"></project_id>
51
- <start_time type="datetime" nil="true"></start_time>
52
- <updated_at type="datetime">2008/10/15 17:29:48</updated_at>
53
- <user_id type="integer">1</user_id>
54
- </task>
55
- </tasks>
56
- <projects type="array">
57
- <project>
58
- <completed type="boolean" nil="true"></completed>
59
- <created_at type="datetime">2008/10/15 17:29:54</created_at>
60
- <end_date type="date" nil="true"></end_date>
61
- <id type="integer">1</id>
62
- <name nil="true"></name>
63
- <notes nil="true"></notes>
64
- <start_date type="date" nil="true"></start_date>
65
- <updated_at type="datetime">2008/10/15 17:29:54</updated_at>
66
- <user_id type="integer">1</user_id>
67
- </project>
68
- </projects>
69
- </user>
70
- => nil
71
- >>