dima-restfulx 1.2.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.
Files changed (128) hide show
  1. data/History.txt +7 -0
  2. data/Manifest.txt +127 -0
  3. data/README.rdoc +50 -0
  4. data/Rakefile +42 -0
  5. data/app_generators/rx_app/USAGE +22 -0
  6. data/app_generators/rx_app/rx_app_generator.rb +94 -0
  7. data/app_generators/rx_app/templates/actionscript.properties +16 -0
  8. data/app_generators/rx_app/templates/actionscriptair.properties +16 -0
  9. data/app_generators/rx_app/templates/app.yaml.erb +12 -0
  10. data/app_generators/rx_app/templates/default_tasks.rake +51 -0
  11. data/app_generators/rx_app/templates/empty.txt +0 -0
  12. data/app_generators/rx_app/templates/expressInstall.swf +0 -0
  13. data/app_generators/rx_app/templates/flex.properties +2 -0
  14. data/app_generators/rx_app/templates/generate.rb +17 -0
  15. data/app_generators/rx_app/templates/html-template/AC_OETags.js +276 -0
  16. data/app_generators/rx_app/templates/html-template/history/history.css +6 -0
  17. data/app_generators/rx_app/templates/html-template/history/history.js +645 -0
  18. data/app_generators/rx_app/templates/html-template/history/historyFrame.html +29 -0
  19. data/app_generators/rx_app/templates/html-template/index.template.html +121 -0
  20. data/app_generators/rx_app/templates/html-template/playerProductInstall.swf +0 -0
  21. data/app_generators/rx_app/templates/index.html.erb +18 -0
  22. data/app_generators/rx_app/templates/index.yaml +11 -0
  23. data/app_generators/rx_app/templates/mainair-app.xml +134 -0
  24. data/app_generators/rx_app/templates/mainapp-config.xml +21 -0
  25. data/app_generators/rx_app/templates/mainapp.mxml +31 -0
  26. data/app_generators/rx_app/templates/project-textmate.erb +52 -0
  27. data/app_generators/rx_app/templates/project.properties +18 -0
  28. data/app_generators/rx_app/templates/projectair.properties +24 -0
  29. data/app_generators/rx_app/templates/swfobject.js +5 -0
  30. data/bin/rx-gen +31 -0
  31. data/generators/rx_config/USAGE +5 -0
  32. data/generators/rx_config/rx_config_generator.rb +19 -0
  33. data/generators/rx_controller/USAGE +10 -0
  34. data/generators/rx_controller/rx_controller_generator.rb +39 -0
  35. data/generators/rx_controller/templates/assist.py +65 -0
  36. data/generators/rx_controller/templates/controller.as.erb +36 -0
  37. data/generators/rx_controller/templates/restful.py +136 -0
  38. data/generators/rx_main_app/USAGE +8 -0
  39. data/generators/rx_main_app/rx_main_app_generator.rb +60 -0
  40. data/generators/rx_main_app/templates/main.py.erb +29 -0
  41. data/generators/rx_main_app/templates/mainapp.mxml +35 -0
  42. data/generators/rx_scaffold/USAGE +29 -0
  43. data/generators/rx_scaffold/rx_scaffold_generator.rb +146 -0
  44. data/generators/rx_scaffold/templates/component.mxml.erb +149 -0
  45. data/generators/rx_scaffold/templates/controller.py.erb +27 -0
  46. data/generators/rx_scaffold/templates/model.as.erb +42 -0
  47. data/generators/rx_scaffold/templates/model.py.erb +14 -0
  48. data/generators/rx_yaml_scaffold/USAGE +45 -0
  49. data/generators/rx_yaml_scaffold/rx_yaml_scaffold_generator.rb +47 -0
  50. data/lib/restfulx/active_foo.rb +186 -0
  51. data/lib/restfulx/active_record_tasks.rb +81 -0
  52. data/lib/restfulx/configuration.rb +76 -0
  53. data/lib/restfulx/datamapper_foo.rb +31 -0
  54. data/lib/restfulx/rails/recipes.rb +60 -0
  55. data/lib/restfulx/rails/swf_helper.rb +60 -0
  56. data/lib/restfulx/tasks.rb +85 -0
  57. data/lib/restfulx.rb +117 -0
  58. data/rails_generators/rx_config/USAGE +18 -0
  59. data/rails_generators/rx_config/rx_config_generator.rb +115 -0
  60. data/rails_generators/rx_config/templates/actionscript.properties +16 -0
  61. data/rails_generators/rx_config/templates/actionscriptair.properties +16 -0
  62. data/rails_generators/rx_config/templates/expressInstall.swf +0 -0
  63. data/rails_generators/rx_config/templates/flex.properties +2 -0
  64. data/rails_generators/rx_config/templates/html-template/AC_OETags.js +276 -0
  65. data/rails_generators/rx_config/templates/html-template/history/history.css +6 -0
  66. data/rails_generators/rx_config/templates/html-template/history/history.js +645 -0
  67. data/rails_generators/rx_config/templates/html-template/history/historyFrame.html +29 -0
  68. data/rails_generators/rx_config/templates/html-template/index.template.html +121 -0
  69. data/rails_generators/rx_config/templates/html-template/playerProductInstall.swf +0 -0
  70. data/rails_generators/rx_config/templates/index.html.erb +18 -0
  71. data/rails_generators/rx_config/templates/mainair-app.xml +134 -0
  72. data/rails_generators/rx_config/templates/mainapp-config.xml +21 -0
  73. data/rails_generators/rx_config/templates/mainapp.mxml +31 -0
  74. data/rails_generators/rx_config/templates/project-textmate.erb +52 -0
  75. data/rails_generators/rx_config/templates/project.properties +18 -0
  76. data/rails_generators/rx_config/templates/projectair.properties +24 -0
  77. data/rails_generators/rx_config/templates/restfulx.yml +14 -0
  78. data/rails_generators/rx_config/templates/restfulx_tasks.rake +6 -0
  79. data/rails_generators/rx_config/templates/swfobject.js +5 -0
  80. data/rails_generators/rx_controller/USAGE +10 -0
  81. data/rails_generators/rx_controller/rx_controller_generator.rb +28 -0
  82. data/rails_generators/rx_controller/templates/controller.as.erb +40 -0
  83. data/rails_generators/rx_scaffold/USAGE +35 -0
  84. data/rails_generators/rx_scaffold/rx_scaffold_generator.rb +179 -0
  85. data/rails_generators/rx_scaffold/templates/component.mxml.erb +149 -0
  86. data/rails_generators/rx_scaffold/templates/controller.rb.erb +97 -0
  87. data/rails_generators/rx_scaffold/templates/fixtures.yml.erb +35 -0
  88. data/rails_generators/rx_scaffold/templates/migration.rb.erb +19 -0
  89. data/rails_generators/rx_scaffold/templates/model.as.erb +42 -0
  90. data/rails_generators/rx_scaffold/templates/model.rb.erb +11 -0
  91. data/rails_generators/rx_yaml_scaffold/USAGE +51 -0
  92. data/rails_generators/rx_yaml_scaffold/rx_yaml_scaffold_generator.rb +49 -0
  93. data/rdoc/generators/template/html/jamis.rb +588 -0
  94. data/spec/restfulx_spec.rb +7 -0
  95. data/spec/spec_helper.rb +16 -0
  96. data/test/rails/controllers/application.rb +15 -0
  97. data/test/rails/controllers/locations_controller.rb +93 -0
  98. data/test/rails/controllers/notes_controller.rb +96 -0
  99. data/test/rails/controllers/projects_controller.rb +93 -0
  100. data/test/rails/controllers/tasks_controller.rb +93 -0
  101. data/test/rails/controllers/users_controller.rb +93 -0
  102. data/test/rails/database.yml +4 -0
  103. data/test/rails/fixtures/locations.yml +8 -0
  104. data/test/rails/fixtures/notes.yml +17 -0
  105. data/test/rails/fixtures/projects.yml +25 -0
  106. data/test/rails/fixtures/simple_properties.yml +19 -0
  107. data/test/rails/fixtures/tasks.yml +46 -0
  108. data/test/rails/fixtures/users.yml +13 -0
  109. data/test/rails/helpers/functional_test_helper.rb +21 -0
  110. data/test/rails/helpers/test_helper.rb +61 -0
  111. data/test/rails/helpers/unit_test_helper.rb +30 -0
  112. data/test/rails/model.yml +35 -0
  113. data/test/rails/models/location.rb +4 -0
  114. data/test/rails/models/note.rb +3 -0
  115. data/test/rails/models/project.rb +4 -0
  116. data/test/rails/models/simple_property.rb +2 -0
  117. data/test/rails/models/task.rb +18 -0
  118. data/test/rails/models/user.rb +20 -0
  119. data/test/rails/playing_around_in_a_console.txt +71 -0
  120. data/test/rails/schema.rb +77 -0
  121. data/test/rails/test.swf +1 -0
  122. data/test/rails/test_active_foo.rb +36 -0
  123. data/test/rails/test_rails_integration_functional.rb +22 -0
  124. data/test/rails/test_to_fxml.rb +35 -0
  125. data/test/rails/test_to_json.rb +23 -0
  126. data/test/rails/views/notes/empty_params_action.html.erb +1 -0
  127. data/test/rails/views/notes/index.html.erb +1 -0
  128. metadata +211 -0
@@ -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
+ &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
@@ -0,0 +1,7 @@
1
+
2
+ require File.join(File.dirname(__FILE__), %w[spec_helper])
3
+
4
+ describe RestfulX do
5
+ end
6
+
7
+ # EOF
@@ -0,0 +1,16 @@
1
+
2
+ require File.expand_path(
3
+ File.join(File.dirname(__FILE__), %w[.. lib restfulx]))
4
+
5
+ Spec::Runner.configure do |config|
6
+ # == Mock Framework
7
+ #
8
+ # RSpec uses it's own mocking framework by default. If you prefer to
9
+ # use mocha, flexmock or RR, uncomment the appropriate line:
10
+ #
11
+ # config.mock_with :mocha
12
+ # config.mock_with :flexmock
13
+ # config.mock_with :rr
14
+ end
15
+
16
+ # EOF
@@ -0,0 +1,15 @@
1
+ # Filters added to this controller apply to all controllers in the application.
2
+ # Likewise, all the methods added will be available for all controllers.
3
+
4
+ class ApplicationController < ActionController::Base
5
+ helper :all # include all helpers, all the time
6
+
7
+ # See ActionController::RequestForgeryProtection for details
8
+ # Uncomment the :secret if you're not using the cookie session store
9
+ protect_from_forgery # :secret => 'c83e3ff98f15718c4544ca8821f2b6d4'
10
+
11
+ # See ActionController::Base for details
12
+ # Uncomment this to filter the contents of submitted sensitive data parameters
13
+ # from your application log (in this case, all fields with names like "password").
14
+ # filter_parameter_logging :password
15
+ end
@@ -0,0 +1,93 @@
1
+ class LocationsController < ApplicationController
2
+ # GET /locations
3
+ # GET /locations.xml
4
+ def index
5
+ @locations = Location.find(:all)
6
+
7
+ respond_to do |format|
8
+ format.html # index.html.erb
9
+ format.xml { render :xml => @locations }
10
+ format.fxml { render :fxml => @locations }
11
+ end
12
+ end
13
+
14
+ # GET /locations/1
15
+ # GET /locations/1.xml
16
+ def show
17
+ @location = Location.find(params[:id])
18
+
19
+ respond_to do |format|
20
+ format.html # show.html.erb
21
+ format.xml { render :xml => @location }
22
+ format.fxml { render :fxml => @location }
23
+ end
24
+ end
25
+
26
+ # GET /locations/new
27
+ # GET /locations/new.xml
28
+ def new
29
+ @location = Location.new
30
+
31
+ respond_to do |format|
32
+ format.html # new.html.erb
33
+ format.xml { render :xml => @location }
34
+ format.fxml { render :fxml => @location }
35
+ end
36
+ end
37
+
38
+ # GET /locations/1/edit
39
+ def edit
40
+ @location = Location.find(params[:id])
41
+ end
42
+
43
+ # POST /locations
44
+ # POST /locations.xml
45
+ def create
46
+ @location = Location.new(params[:location])
47
+
48
+ respond_to do |format|
49
+ if @location.save
50
+ flash[:notice] = 'Location was successfully created.'
51
+ format.html { redirect_to(@location) }
52
+ format.xml { render :xml => @location, :status => :created, :location => @location }
53
+ format.fxml { render :fxml => @location }
54
+ else
55
+ format.html { render :action => "new" }
56
+ format.xml { render :xml => @location.errors, :status => :unprocessable_entity }
57
+ format.fxml { render :fxml => @location.errors }
58
+ end
59
+ end
60
+ end
61
+
62
+ # PUT /locations/1
63
+ # PUT /locations/1.xml
64
+ def update
65
+ @location = Location.find(params[:id])
66
+
67
+ respond_to do |format|
68
+ if @location.update_attributes(params[:location])
69
+ flash[:notice] = 'Location was successfully updated.'
70
+ format.html { redirect_to(@location) }
71
+ format.xml { head :ok }
72
+ format.fxml { render :fxml => @location }
73
+ else
74
+ format.html { render :action => "edit" }
75
+ format.xml { render :xml => @location.errors, :status => :unprocessable_entity }
76
+ format.fxml { render :fxml => @location.errors }
77
+ end
78
+ end
79
+ end
80
+
81
+ # DELETE /locations/1
82
+ # DELETE /locations/1.xml
83
+ def destroy
84
+ @location = Location.find(params[:id])
85
+ @location.destroy
86
+
87
+ respond_to do |format|
88
+ format.html { redirect_to(locations_url) }
89
+ format.xml { head :ok }
90
+ format.fxml { render :fxml => @location }
91
+ end
92
+ end
93
+ end