emergent-core 0.1.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 (349) hide show
  1. data/.bnsignore +16 -0
  2. data/History.txt +4 -0
  3. data/Manifest.txt +348 -0
  4. data/README.rdoc +47 -0
  5. data/Rakefile +39 -0
  6. data/app_generators/emergent_core/USAGE +5 -0
  7. data/app_generators/emergent_core/emergent_core_generator.rb +73 -0
  8. data/app_generators/emergent_core/templates/core/actionscript.properties +16 -0
  9. data/app_generators/emergent_core/templates/core/actionscriptair.properties +16 -0
  10. data/app_generators/emergent_core/templates/core/app.yaml.erb +12 -0
  11. data/app_generators/emergent_core/templates/core/default_tasks.rake +51 -0
  12. data/app_generators/emergent_core/templates/core/empty.txt +0 -0
  13. data/app_generators/emergent_core/templates/core/expressInstall.swf +0 -0
  14. data/app_generators/emergent_core/templates/core/flex.properties +2 -0
  15. data/app_generators/emergent_core/templates/core/generate.rb +17 -0
  16. data/app_generators/emergent_core/templates/core/html-template/AC_OETags.js +276 -0
  17. data/app_generators/emergent_core/templates/core/html-template/history/history.css +6 -0
  18. data/app_generators/emergent_core/templates/core/html-template/history/history.js +645 -0
  19. data/app_generators/emergent_core/templates/core/html-template/history/historyFrame.html +29 -0
  20. data/app_generators/emergent_core/templates/core/html-template/index.template.html +121 -0
  21. data/app_generators/emergent_core/templates/core/html-template/playerProductInstall.swf +0 -0
  22. data/app_generators/emergent_core/templates/core/index.html.erb +18 -0
  23. data/app_generators/emergent_core/templates/core/index.yaml +11 -0
  24. data/app_generators/emergent_core/templates/core/mainair-app.xml +134 -0
  25. data/app_generators/emergent_core/templates/core/mainapp-config.xml +21 -0
  26. data/app_generators/emergent_core/templates/core/mainapp.mxml +106 -0
  27. data/app_generators/emergent_core/templates/core/project-textmate.erb +52 -0
  28. data/app_generators/emergent_core/templates/core/project.properties +18 -0
  29. data/app_generators/emergent_core/templates/core/projectair.properties +24 -0
  30. data/app_generators/emergent_core/templates/core/swfobject.js +5 -0
  31. data/bin/emergent +17 -0
  32. data/lib/emergent_core.rb +49 -0
  33. data/lib/restfulx/active_foo.rb +194 -0
  34. data/lib/restfulx/active_record_tasks.rb +81 -0
  35. data/lib/restfulx/configuration.rb +76 -0
  36. data/lib/restfulx/datamapper_foo.rb +31 -0
  37. data/lib/restfulx/rails/recipes.rb +60 -0
  38. data/lib/restfulx/rails/swf_helper.rb +60 -0
  39. data/lib/restfulx/tasks.rb +85 -0
  40. data/lib/restfulx.rb +117 -0
  41. data/rails_generators/emergent_cms/USAGE +5 -0
  42. data/rails_generators/emergent_cms/emergent_cms_generator.rb +21 -0
  43. data/rails_generators/emergent_cms/templates/PagesEditModel.as +114 -0
  44. data/rails_generators/emergent_cms/templates/PagesEditView.mxml +102 -0
  45. data/rails_generators/emergent_config/USAGE +5 -0
  46. data/rails_generators/emergent_config/emergent_config_generator.rb +330 -0
  47. data/rails_generators/emergent_config/templates/app/controllers/accounts_controller.rb +104 -0
  48. data/rails_generators/emergent_config/templates/app/controllers/addresses_controller.rb +97 -0
  49. data/rails_generators/emergent_config/templates/app/controllers/application.rb +26 -0
  50. data/rails_generators/emergent_config/templates/app/controllers/assets_controller.rb +1 -0
  51. data/rails_generators/emergent_config/templates/app/controllers/content_assignments_controller.rb +97 -0
  52. data/rails_generators/emergent_config/templates/app/controllers/contents_controller.rb +114 -0
  53. data/rails_generators/emergent_config/templates/app/controllers/sessions_controller.rb +72 -0
  54. data/rails_generators/emergent_config/templates/app/controllers/sites_controller.rb +1 -0
  55. data/rails_generators/emergent_config/templates/app/controllers/users_controller.rb +97 -0
  56. data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/ICommand.as +16 -0
  57. data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/Undoable.as +46 -0
  58. data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/UpdateDocumentCommand.as +73 -0
  59. data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/DocumentEvent.as +46 -0
  60. data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/NavigationEvent.as +31 -0
  61. data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/ResourceEvent.as +27 -0
  62. data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/UndoEvent.as +36 -0
  63. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AboutUsManager.as +15 -0
  64. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AccountManager.as +31 -0
  65. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AuthenticationManager.as +76 -0
  66. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/ContentManager.as +92 -0
  67. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/DocumentManager.as +131 -0
  68. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/DocumentsManager.as +156 -0
  69. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/HomeManager.as +18 -0
  70. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/MainManager.as +23 -0
  71. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/PagesManager.as +71 -0
  72. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/ResourceManager.as +195 -0
  73. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/SiteManager.as +25 -0
  74. data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/UndoManager.as +143 -0
  75. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/DocumentMap.mxml +123 -0
  76. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/DocumentsMap.mxml +134 -0
  77. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/ManagerPresentationModelMap.mxml +59 -0
  78. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/ObjectMap.mxml +75 -0
  79. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/PresentationModelViewMap.mxml +81 -0
  80. data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/PresenterViewMap.mxml +67 -0
  81. data/rails_generators/emergent_config/templates/app/flex/application/models/constant/DocumentType.as +52 -0
  82. data/rails_generators/emergent_config/templates/app/flex/application/models/constant/Resource.as +25 -0
  83. data/rails_generators/emergent_config/templates/app/flex/application/models/constant/ResourceAction.as +28 -0
  84. data/rails_generators/emergent_config/templates/app/flex/application/models/constant/ResourceResult.as +8 -0
  85. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Account.as +32 -0
  86. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Address.as +26 -0
  87. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Asset.as +25 -0
  88. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/AssetAssignment.as +25 -0
  89. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Content.as +46 -0
  90. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/ContentAssignment.as +33 -0
  91. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Document.as +131 -0
  92. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/PlainDocument.as +19 -0
  93. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/RichDocument.as +19 -0
  94. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Session.as +13 -0
  95. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Snapshot.as +21 -0
  96. data/rails_generators/emergent_config/templates/app/flex/application/models/domain/User.as +28 -0
  97. data/rails_generators/emergent_config/templates/app/flex/application/models/factory/DocumentFactory.as +61 -0
  98. data/rails_generators/emergent_config/templates/app/flex/application/models/factory/DocumentViewFactory.as +59 -0
  99. data/rails_generators/emergent_config/templates/app/flex/application/models/factory/ResourceFactory.as +28 -0
  100. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AboutUsModel.as +22 -0
  101. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AccountModel.as +68 -0
  102. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AuthenticationModel.as +44 -0
  103. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ContactUsModel.as +45 -0
  104. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ContentModel.as +70 -0
  105. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/DocumentModel.as +235 -0
  106. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/DocumentsModel.as +169 -0
  107. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/HomeModel.as +23 -0
  108. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/MainModel.as +35 -0
  109. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/PagesModel.as +44 -0
  110. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ProfileModel.as +99 -0
  111. data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ResourceModel.as +100 -0
  112. data/rails_generators/emergent_config/templates/app/flex/application/views/about_us/about_us.mxml +105 -0
  113. data/rails_generators/emergent_config/templates/app/flex/application/views/account/account.mxml +97 -0
  114. data/rails_generators/emergent_config/templates/app/flex/application/views/contact_us/contact_us.mxml +65 -0
  115. data/rails_generators/emergent_config/templates/app/flex/application/views/document/document.mxml +71 -0
  116. data/rails_generators/emergent_config/templates/app/flex/application/views/document/documents.mxml +201 -0
  117. data/rails_generators/emergent_config/templates/app/flex/application/views/document/plain_document.mxml +9 -0
  118. data/rails_generators/emergent_config/templates/app/flex/application/views/document/rich_document.mxml +12 -0
  119. data/rails_generators/emergent_config/templates/app/flex/application/views/gallery/gallery.mxml +37 -0
  120. data/rails_generators/emergent_config/templates/app/flex/application/views/home/home.mxml +58 -0
  121. data/rails_generators/emergent_config/templates/app/flex/application/views/home/home_presenter.as +81 -0
  122. data/rails_generators/emergent_config/templates/app/flex/application/views/home/home_troparchy.mxml +71 -0
  123. data/rails_generators/emergent_config/templates/app/flex/application/views/login/login.mxml +50 -0
  124. data/rails_generators/emergent_config/templates/app/flex/application/views/main/main.mxml +131 -0
  125. data/rails_generators/emergent_config/templates/app/flex/application/views/main/main_presenter.as +166 -0
  126. data/rails_generators/emergent_config/templates/app/flex/application/views/main/main_troparchy.mxml +74 -0
  127. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_model.as +13 -0
  128. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_presenter.as +10 -0
  129. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_view.mxml +48 -0
  130. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_model.as +13 -0
  131. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_presenter.as +10 -0
  132. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_view.mxml +43 -0
  133. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_model.as +13 -0
  134. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_presenter.as +10 -0
  135. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_view.mxml +47 -0
  136. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_model.as +13 -0
  137. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_presenter.as +10 -0
  138. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_view.mxml +49 -0
  139. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_presenter.as +63 -0
  140. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_troparchy.mxml +63 -0
  141. data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_view.mxml +59 -0
  142. data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages.mxml +44 -0
  143. data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages_presenter.as +83 -0
  144. data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages_troparchy.mxml +62 -0
  145. data/rails_generators/emergent_config/templates/app/flex/application/views/profile/profile.mxml +73 -0
  146. data/rails_generators/emergent_config/templates/app/flex/assets/fonts/MyriadPro-Bold.otf +0 -0
  147. data/rails_generators/emergent_config/templates/app/flex/assets/fonts/MyriadPro-Regular.otf +0 -0
  148. data/rails_generators/emergent_config/templates/app/flex/assets/html/lorem.html +3 -0
  149. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture10.png +0 -0
  150. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture11.png +0 -0
  151. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture12.png +0 -0
  152. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture13.png +0 -0
  153. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture14.png +0 -0
  154. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture3.png +0 -0
  155. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture4.png +0 -0
  156. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture5.png +0 -0
  157. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture6.png +0 -0
  158. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture7.png +0 -0
  159. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture8.png +0 -0
  160. data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture9.png +0 -0
  161. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_0.jpg +0 -0
  162. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_180.jpg +0 -0
  163. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_270.jpg +0 -0
  164. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_90.jpg +0 -0
  165. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_bottom.jpg +0 -0
  166. data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_top.jpg +0 -0
  167. data/rails_generators/emergent_config/templates/app/flex/assets/styles/itunes7Bg.jpg +0 -0
  168. data/rails_generators/emergent_config/templates/app/flex/assets/styles/jukebox.css +764 -0
  169. data/rails_generators/emergent_config/templates/app/flex/assets/styles/jukeboxGfx.swf +0 -0
  170. data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidian.css +734 -0
  171. data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidianBg.jpg +0 -0
  172. data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidianGfx.swf +0 -0
  173. data/rails_generators/emergent_config/templates/app/flex/com/fourD/actions/LayoutAction.as +377 -0
  174. data/rails_generators/emergent_config/templates/app/flex/com/fourD/actions/SimpleLayoutAction.as +210 -0
  175. data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/FourDTweenCollection.mxml +50 -0
  176. data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/IAnimator.as +39 -0
  177. data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/TweenMaxAnimator.as +269 -0
  178. data/rails_generators/emergent_config/templates/app/flex/com/fourD/cameras/AstroCamera.as +177 -0
  179. data/rails_generators/emergent_config/templates/app/flex/com/fourD/components/FourDDataGrid.mxml +105 -0
  180. data/rails_generators/emergent_config/templates/app/flex/com/fourD/components/FourDItemRenderer.mxml +54 -0
  181. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/CenterPerspectiveProjection.as +72 -0
  182. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/ComplexCondition.as +44 -0
  183. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/ConditionsUtil.as +82 -0
  184. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/FourDComponent.as +309 -0
  185. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/InstanceMethodInvoker.as +50 -0
  186. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/InstancePropertyInjector.as +43 -0
  187. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/MethodCaller.as +51 -0
  188. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pathway.as +10 -0
  189. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/PathwayEvent.as +28 -0
  190. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pheron.as +34 -0
  191. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pheron2.as +41 -0
  192. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/PheronReceptor.as +125 -0
  193. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Properties.as +57 -0
  194. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Router.as +50 -0
  195. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/RouterUtil.as +70 -0
  196. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleCondition.as +42 -0
  197. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleZSortVO.as +1 -0
  198. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleZSorter.as +1 -0
  199. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Tecton.as +70 -0
  200. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Tecton2.as +234 -0
  201. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonCache.as +111 -0
  202. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonEvent.as +39 -0
  203. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMap.as +515 -0
  204. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMap2.as +289 -0
  205. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMapSample.mxml +73 -0
  206. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonReceptor.as +43 -0
  207. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonScope.as +38 -0
  208. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonScopeProperties.as +18 -0
  209. data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonUtils.as +51 -0
  210. data/rails_generators/emergent_config/templates/app/flex/com/fourD/events/LayoutActionEvent.as +75 -0
  211. data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CarouselLayout.as +85 -0
  212. data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CircleLayout.as +102 -0
  213. data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CoverFlowLayout.as +136 -0
  214. data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/FourDLayout.as +272 -0
  215. data/rails_generators/emergent_config/templates/app/flex/com/fourD/utils/TweenUtil.as +110 -0
  216. data/rails_generators/emergent_config/templates/app/helpers/accounts_helper.rb +93 -0
  217. data/rails_generators/emergent_config/templates/app/helpers/application_helper.rb +3 -0
  218. data/rails_generators/emergent_config/templates/app/models/account.rb +84 -0
  219. data/rails_generators/emergent_config/templates/app/models/account_mailer.rb +24 -0
  220. data/rails_generators/emergent_config/templates/app/models/account_observer.rb +17 -0
  221. data/rails_generators/emergent_config/templates/app/models/address.rb +2 -0
  222. data/rails_generators/emergent_config/templates/app/models/asset.rb +6 -0
  223. data/rails_generators/emergent_config/templates/app/models/asset_assignment.rb +4 -0
  224. data/rails_generators/emergent_config/templates/app/models/category.rb +35 -0
  225. data/rails_generators/emergent_config/templates/app/models/comment.rb +98 -0
  226. data/rails_generators/emergent_config/templates/app/models/content.rb +89 -0
  227. data/rails_generators/emergent_config/templates/app/models/content_assignment.rb +21 -0
  228. data/rails_generators/emergent_config/templates/app/models/image.rb +3 -0
  229. data/rails_generators/emergent_config/templates/app/models/post.rb +76 -0
  230. data/rails_generators/emergent_config/templates/app/models/section.rb +97 -0
  231. data/rails_generators/emergent_config/templates/app/models/site.rb +1 -0
  232. data/rails_generators/emergent_config/templates/app/models/tag.rb +1 -0
  233. data/rails_generators/emergent_config/templates/app/models/user.rb +4 -0
  234. data/rails_generators/emergent_config/templates/app/views/account_mailer/activation.erb +3 -0
  235. data/rails_generators/emergent_config/templates/app/views/account_mailer/signup_notification.erb +8 -0
  236. data/rails_generators/emergent_config/templates/config/Capfile +4 -0
  237. data/rails_generators/emergent_config/templates/config/README.txt +18 -0
  238. data/rails_generators/emergent_config/templates/config/deploy.rb +36 -0
  239. data/rails_generators/emergent_config/templates/config/routes.rb +72 -0
  240. data/rails_generators/emergent_config/templates/core/actionscript.properties +16 -0
  241. data/rails_generators/emergent_config/templates/core/actionscriptair.properties +16 -0
  242. data/rails_generators/emergent_config/templates/core/app.yaml.erb +12 -0
  243. data/rails_generators/emergent_config/templates/core/default_tasks.rake +51 -0
  244. data/rails_generators/emergent_config/templates/core/emergent_tasks.rake +42 -0
  245. data/rails_generators/emergent_config/templates/core/empty.txt +0 -0
  246. data/rails_generators/emergent_config/templates/core/expressInstall.swf +0 -0
  247. data/rails_generators/emergent_config/templates/core/flex.properties +2 -0
  248. data/rails_generators/emergent_config/templates/core/generate.rb +17 -0
  249. data/rails_generators/emergent_config/templates/core/html-template/AC_OETags.js +276 -0
  250. data/rails_generators/emergent_config/templates/core/html-template/history/history.css +6 -0
  251. data/rails_generators/emergent_config/templates/core/html-template/history/history.js +645 -0
  252. data/rails_generators/emergent_config/templates/core/html-template/history/historyFrame.html +29 -0
  253. data/rails_generators/emergent_config/templates/core/html-template/index.template.html +121 -0
  254. data/rails_generators/emergent_config/templates/core/html-template/playerProductInstall.swf +0 -0
  255. data/rails_generators/emergent_config/templates/core/index.html.erb +18 -0
  256. data/rails_generators/emergent_config/templates/core/index.yaml +11 -0
  257. data/rails_generators/emergent_config/templates/core/mainair-app.xml +134 -0
  258. data/rails_generators/emergent_config/templates/core/mainapp-config.xml +21 -0
  259. data/rails_generators/emergent_config/templates/core/mainapp.mxml +101 -0
  260. data/rails_generators/emergent_config/templates/core/project-textmate.erb +52 -0
  261. data/rails_generators/emergent_config/templates/core/project.properties +18 -0
  262. data/rails_generators/emergent_config/templates/core/projectair.properties +24 -0
  263. data/rails_generators/emergent_config/templates/core/restfulx.yml +14 -0
  264. data/rails_generators/emergent_config/templates/core/restfulx_tasks.rake +6 -0
  265. data/rails_generators/emergent_config/templates/core/swfobject.js +5 -0
  266. data/rails_generators/emergent_config/templates/db/migrate/create_accounts.rb +40 -0
  267. data/rails_generators/emergent_config/templates/db/migrate/create_addresses.rb +18 -0
  268. data/rails_generators/emergent_config/templates/db/migrate/create_asset_assignments.rb +19 -0
  269. data/rails_generators/emergent_config/templates/db/migrate/create_assets.rb +20 -0
  270. data/rails_generators/emergent_config/templates/db/migrate/create_content_assignments.rb +26 -0
  271. data/rails_generators/emergent_config/templates/db/migrate/create_contents.rb +21 -0
  272. data/rails_generators/emergent_config/templates/db/migrate/create_sessions.rb +16 -0
  273. data/rails_generators/emergent_config/templates/db/migrate/create_sites.rb +27 -0
  274. data/rails_generators/emergent_config/templates/db/migrate/create_users.rb +15 -0
  275. data/rails_generators/emergent_config/templates/lib/analytics.swc +0 -0
  276. data/rails_generators/emergent_config/templates/lib/app_controller.rb.erb +26 -0
  277. data/rails_generators/emergent_config/templates/lib/as3corelib-0.92.1.swc +0 -0
  278. data/rails_generators/emergent_config/templates/lib/as3crypto-1.3patched.swc +0 -0
  279. data/rails_generators/emergent_config/templates/lib/as3crypto.swc +0 -0
  280. data/rails_generators/emergent_config/templates/lib/as3ds-1.04.swc +0 -0
  281. data/rails_generators/emergent_config/templates/lib/as3httpclientlib-1.0.swc +0 -0
  282. data/rails_generators/emergent_config/templates/lib/authenticated_system.rb +189 -0
  283. data/rails_generators/emergent_config/templates/lib/authenticated_test_helper.rb +11 -0
  284. data/rails_generators/emergent_config/templates/lib/containerEx.swc +0 -0
  285. data/rails_generators/emergent_config/templates/lib/flare.swc +0 -0
  286. data/rails_generators/emergent_config/templates/lib/flash_session_hack.rb +27 -0
  287. data/rails_generators/emergent_config/templates/lib/flex2BrowserManager.swc +0 -0
  288. data/rails_generators/emergent_config/templates/lib/flexlib.swc +0 -0
  289. data/rails_generators/emergent_config/templates/lib/fluint.swc +0 -0
  290. data/rails_generators/emergent_config/templates/lib/mate_0_8_6_enhanced.swc +0 -0
  291. data/rails_generators/emergent_config/templates/lib/openflux.swc +0 -0
  292. data/rails_generators/emergent_config/templates/lib/pv3d.swc +0 -0
  293. data/rails_generators/emergent_config/templates/lib/restfulx.swc +0 -0
  294. data/rails_generators/emergent_config/templates/lib/site_keys.rb +38 -0
  295. data/rails_generators/emergent_config/templates/lib/tweenMax.swc +0 -0
  296. data/rails_generators/emergent_config/templates/lib/urlkitFlex3.swc +0 -0
  297. data/rails_generators/emergent_config/templates/shell_script +31 -0
  298. data/rails_generators/emergent_controller/USAGE +5 -0
  299. data/rails_generators/emergent_controller/emergent_controller_generator.rb +25 -0
  300. data/rails_generators/emergent_controller/templates/controller.as.erb +37 -0
  301. data/rails_generators/emergent_core/USAGE +5 -0
  302. data/rails_generators/emergent_core/emergent_core_generator.rb +157 -0
  303. data/rails_generators/emergent_iphone/USAGE +5 -0
  304. data/rails_generators/emergent_iphone/emergent_iphone_generator.rb +27 -0
  305. data/rails_generators/emergent_scaffold/USAGE +5 -0
  306. data/rails_generators/emergent_scaffold/emergent_scaffold_generator.rb +157 -0
  307. data/rails_generators/emergent_scaffold/templates/component.mxml.erb +101 -0
  308. data/rails_generators/emergent_scaffold/templates/controller.rb.erb +101 -0
  309. data/rails_generators/emergent_scaffold/templates/edit_index_view.mxml.erb +114 -0
  310. data/rails_generators/emergent_scaffold/templates/edit_show_view.mxml.erb +84 -0
  311. data/rails_generators/emergent_scaffold/templates/filter_view.mxml.erb +1 -0
  312. data/rails_generators/emergent_scaffold/templates/fixtures.yml.erb +128 -0
  313. data/rails_generators/emergent_scaffold/templates/index_view.mxml.erb +58 -0
  314. data/rails_generators/emergent_scaffold/templates/item_renderer.mxml.erb +53 -0
  315. data/rails_generators/emergent_scaffold/templates/manager.as.erb +31 -0
  316. data/rails_generators/emergent_scaffold/templates/migration.rb.erb +22 -0
  317. data/rails_generators/emergent_scaffold/templates/model.as.erb +42 -0
  318. data/rails_generators/emergent_scaffold/templates/model.rb.erb +11 -0
  319. data/rails_generators/emergent_scaffold/templates/presentation_model.as.erb +33 -0
  320. data/rails_generators/emergent_scaffold/templates/presenter.as.erb +98 -0
  321. data/rails_generators/emergent_scaffold/templates/show_view.mxml.erb +50 -0
  322. data/rails_generators/emergent_scaffold/templates/view_map.mxml.erb +40 -0
  323. data/rails_generators/emergent_scaffold/templates/views_panel.mxml.erb +64 -0
  324. data/rails_generators/emergent_styler/USAGE +5 -0
  325. data/rails_generators/emergent_styler/emergent_styler_generator.rb +21 -0
  326. data/rails_generators/rx_yaml_scaffold/USAGE +51 -0
  327. data/rails_generators/rx_yaml_scaffold/rx_yaml_scaffold_generator.rb +49 -0
  328. data/script/console +10 -0
  329. data/script/destroy +14 -0
  330. data/script/generate +14 -0
  331. data/spec/emergent_core_spec.rb +7 -0
  332. data/spec/spec_helper.rb +16 -0
  333. data/tasks/ann.rake +80 -0
  334. data/tasks/bones.rake +20 -0
  335. data/tasks/gem.rake +201 -0
  336. data/tasks/git.rake +40 -0
  337. data/tasks/manifest.rake +48 -0
  338. data/tasks/notes.rake +27 -0
  339. data/tasks/post_load.rake +39 -0
  340. data/tasks/rdoc.rake +50 -0
  341. data/tasks/rubyforge.rake +55 -0
  342. data/tasks/setup.rb +279 -0
  343. data/tasks/spec.rake +54 -0
  344. data/tasks/svn.rake +47 -0
  345. data/tasks/test.rake +40 -0
  346. data/test/test_emergent_core.rb +0 -0
  347. data/test/test_emergent_iphone_generator.rb +46 -0
  348. data/test/test_generator_helper.rb +29 -0
  349. metadata +437 -0
@@ -0,0 +1,67 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <EventMap xmlns="http://mate.asfusion.com/" xmlns:mx="http://www.adobe.com/2006/mxml">
3
+
4
+ <!--
5
+ This is the main event map for the application, think of it as the application controller.
6
+ -->
7
+
8
+ <mx:Script>
9
+ <![CDATA[
10
+
11
+ import mx.events.FlexEvent;
12
+
13
+ import <%= base_package %>.views.navigation.NavigationBarLeftPresenter;
14
+ import <%= base_package %>.views.navigation.NavigationBarLeftView;
15
+
16
+ import <%= base_package %>.views.navigation.NavigationBarRightPresenter;
17
+ import <%= base_package %>.views.navigation.NavigationBarRightView;
18
+
19
+ import <%= base_package %>.views.navigation.NavigationBarTopPresenter;
20
+ import <%= base_package %>.views.navigation.NavigationBarTopView;
21
+
22
+ import <%= base_package %>.views.navigation.NavigationBarBottomPresenter;
23
+ import <%= base_package %>.views.navigation.NavigationBarBottomView;
24
+
25
+ import <%= base_package %>.views.main.MainView;
26
+ import <%= base_package %>.views.main.MainPresenter;
27
+
28
+ ]]>
29
+ </mx:Script>
30
+
31
+ <!-- <Debugger level="{Debugger.ALL}"/> -->
32
+
33
+ <EventHandlers type="{FlexEvent.PREINITIALIZE}">
34
+ <!--
35
+ The FlexEvent.PREINITIALIZE event is a good place for creating and initializing managers.
36
+ -->
37
+ </EventHandlers>
38
+
39
+ <EventHandlers type="{FlexEvent.APPLICATION_COMPLETE}">
40
+
41
+ </EventHandlers>
42
+
43
+ <Injectors target="{MainView}">
44
+ <PropertyInjector targetKey="presenter" source="{MainPresenter}" />
45
+ </Injectors>
46
+
47
+ <Injectors target="{NavigationBarRightView}">
48
+ <PropertyInjector targetKey="presenter" source="{NavigationBarRightPresenter}" />
49
+ </Injectors>
50
+
51
+ <Injectors target="{NavigationBarLeftView}">
52
+ <PropertyInjector targetKey="presenter" source="{NavigationBarLeftPresenter}" />
53
+ </Injectors>
54
+
55
+ <Injectors target="{NavigationBarTopView}">
56
+ <PropertyInjector targetKey="presenter" source="{NavigationBarTopPresenter}" />
57
+ </Injectors>
58
+
59
+ <Injectors target="{NavigationBarBottomView}">
60
+ <PropertyInjector targetKey="presenter" source="{NavigationBarBottomPresenter}" />
61
+ </Injectors>
62
+
63
+ <Injectors targets="{[NavigationBarLeftPresenter, NavigationBarRightPresenter, NavigationBarTopPresenter, NavigationBarBottomPresenter]}">
64
+ <PropertyInjector targetKey="globalDispatcher" source="{scope.dispatcher}" />
65
+ </Injectors>
66
+
67
+ </EventMap>
@@ -0,0 +1,52 @@
1
+ /* Copyright 2008 Theo Hultberg/Iconara */
2
+
3
+ package <%= base_package %>.models.constant
4
+ {
5
+ /**
6
+ * This class is a glorified enumeration. It should not be instantiated, only
7
+ * used through its two constants PLAIN and RICH or through the static method
8
+ * fromString (and that should only be used when really needed).
9
+ *
10
+ * It could very well be said that it's overkill with this much code just to implement
11
+ * an enum, and much simpler
12
+ */
13
+ public final class DocumentType {
14
+
15
+ public static var PLAIN : DocumentType = new DocumentType("plain");
16
+ public static var RICH : DocumentType = new DocumentType("rich");
17
+
18
+
19
+ private var _type : String;
20
+
21
+
22
+ public function get type( ) : String {
23
+ return _type;
24
+ }
25
+
26
+
27
+ public static function fromString( typeString : String ) : DocumentType {
28
+ var instance : DocumentType = DocumentType[typeString.toUpperCase()];
29
+
30
+ if ( instance == null ) {
31
+ throw new ArgumentError("String does not match an existing document type: " + typeString);
32
+ }
33
+
34
+ return instance;
35
+ }
36
+
37
+ /**
38
+ * DO NOT INSTANTIATE.
39
+ *
40
+ * Use constants or fromString, this constructor is private.
41
+ */
42
+ public function DocumentType( type : String ) {
43
+ _type = type;
44
+ }
45
+
46
+ public function toString( ) : String {
47
+ return "[object DocumentType(\"" + type + "\")]";
48
+ }
49
+
50
+ }
51
+
52
+ }
@@ -0,0 +1,25 @@
1
+ package <%= base_package %>.models.constant
2
+ {
3
+ public class Resource
4
+ {
5
+ /**
6
+ * This is a list of all the Resource types you have in you application
7
+ * I have created this so we don't have to have 50 different events with the same
8
+ * 6 types. Now we have one event, a ResourceEvent, and you pass it a Resource.TYPE
9
+ * This allows us to abstract a lot of the data management from the subclasses.
10
+ */
11
+
12
+ public static const MESSAGE:String = "messageResource";
13
+
14
+ public static const CONTENT:String = "contentResource";
15
+ public static const CONTENT_ASSIGNMENT:String = "contentAssignmentResource";
16
+ public static const ASSET:String = "assetResource";
17
+ public static const ASSET_ASSIGNMENT:String = "assetAssignmentResource";
18
+
19
+ public static const SESSION:String = "sessionResource";
20
+ public static const USER:String = "userResource";
21
+ public static const ACCOUNT:String = "accountResource";
22
+ public static const ADDRESS:String = "addressResource";
23
+
24
+ }
25
+ }
@@ -0,0 +1,28 @@
1
+ package <%= base_package %>.models.constant
2
+ {
3
+
4
+ public class ResourceAction {
5
+
6
+ /**
7
+ * This is a list of all RESTful Resource Action you have in you application
8
+ */
9
+
10
+ // CRUD events for the ResourceModel...
11
+ public static const LIST:String = "listResourceAction";
12
+ public static const OPEN:String = "openResourceAction";
13
+ public static const NEW:String = "newResourceAction";
14
+ public static const CREATE:String = "createResourceAction";
15
+ public static const UPDATE:String = "updateResourceAction";
16
+ public static const DESTROY:String = "destroyResourceAction";
17
+ public static const STORE:String = "storeResourceAction"; // use to save in favorites or add to cart
18
+ public static const UPLOAD:String = "uploadResourceAction";
19
+ public static const DOWNLOAD:String = "downloadResourceAction";
20
+
21
+ public static const SUCCESS:String = "successResourceAction";
22
+ public static const FAILURE:String = "failureResourceAction";
23
+
24
+ }
25
+ }
26
+
27
+
28
+
@@ -0,0 +1,8 @@
1
+ package <%= base_package %>.models.constant
2
+ {
3
+ public class ResourceResult {
4
+
5
+ public static const SUCCESS:String = "success";
6
+ public static const FAILURE:String = "failure";
7
+ }
8
+ }
@@ -0,0 +1,32 @@
1
+ package <%= base_package %>.models.domain {
2
+
3
+ import org.restfulx.models.RxModel;
4
+
5
+ [Resource(name="accounts")]
6
+ [Bindable]
7
+ public class Account extends RxModel {
8
+ public static const LABEL:String = "login";
9
+
10
+ public var login:String;
11
+
12
+ public var firstName:String;
13
+
14
+ public var lastName:String;
15
+
16
+ public var email:String;
17
+
18
+ public var password:String;
19
+
20
+ public var passwordConfirmation:String;
21
+
22
+ [Ignored]
23
+ public var photoUrl:String;
24
+
25
+ [Ignored]
26
+ public var sessionToken:String;
27
+
28
+ public function Account() {
29
+ super(LABEL);
30
+ }
31
+ }
32
+ }
@@ -0,0 +1,26 @@
1
+ package <%= base_package %>.models.domain {
2
+
3
+ import org.restfulx.models.RxModel;
4
+
5
+ [Resource(name="addresses")]
6
+ [Bindable]
7
+ public class Address extends RxModel {
8
+ public static const LABEL:String = "lineOne";
9
+
10
+ public var lineOne:String;
11
+
12
+ public var lineTwo:String;
13
+
14
+ public var city:String;
15
+
16
+ public var province:String;
17
+
18
+ public var country:String;
19
+
20
+ public var postcode:String;
21
+
22
+ public function Address() {
23
+ super(LABEL);
24
+ }
25
+ }
26
+ }
@@ -0,0 +1,25 @@
1
+ package <%= base_package %>.models.domain {
2
+
3
+ import org.restfulx.collections.ModelsCollection;
4
+ import org.restfulx.models.RxModel;
5
+ import <%= base_package %>.models.domain.Content;
6
+
7
+ [Resource(name="assets")]
8
+ [Bindable]
9
+ public class Asset extends RxModel {
10
+
11
+ public static const LABEL:String = "name";
12
+
13
+ public var name:String;
14
+
15
+ [HasMany]
16
+ public var assetAssignments:ModelsCollection;
17
+
18
+ [HasMany(through="assetAssignments")]
19
+ public var contents:ModelsCollection;
20
+
21
+ public function AssetAssignment() {
22
+ super(LABEL);
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,25 @@
1
+ package <%= base_package %>.models.domain {
2
+
3
+ import org.restfulx.collections.ModelsCollection;
4
+ import org.restfulx.models.RxModel;
5
+ import <%= base_package %>.models.domain.Content;
6
+
7
+ [Resource(name="asset_assigments")]
8
+ [Bindable]
9
+ public class AssetAssignment extends RxModel {
10
+
11
+ public static const LABEL:String = "name";
12
+
13
+ public var name:String;
14
+
15
+ [BelongsTo(polymorphic="true", dependsOn="Asset, Content")]
16
+ public var assignableAsset:Object; // can we rename it asset?
17
+
18
+ [BelongsTo]
19
+ public var content:Content;
20
+
21
+ public function AssetAssignment() {
22
+ super(LABEL);
23
+ }
24
+ }
25
+ }
@@ -0,0 +1,46 @@
1
+ package <%= base_package %>.models.domain {
2
+
3
+ import org.restfulx.collections.ModelsCollection;
4
+ import org.restfulx.models.RxModel;
5
+
6
+ [Resource(name="contents")]
7
+ [Bindable]
8
+ public class Content extends RxModel {
9
+
10
+ public static const LABEL:String = "title";
11
+
12
+ public var title:String;
13
+
14
+ public var abstract:String;
15
+
16
+ public var menuTitle:String;
17
+
18
+ public var subTitle:String;
19
+
20
+ public var body:String;
21
+
22
+ [HasMany]
23
+ public var contentAssignments:ModelsCollection;
24
+
25
+ [HasMany(through="contentAssignments")]
26
+ public var contents:ModelsCollection;
27
+
28
+ [HasMany]
29
+ public var assetAssignments:ModelsCollection;
30
+
31
+ [HasMany(through="assetAssignments")]
32
+ public var assets:ModelsCollection;
33
+
34
+ [Ignored] //used to say to what component the content goes from the Manager
35
+ // CommentsView.name = "commen"
36
+ public var presentationModelName:String;
37
+
38
+ public function Content() {
39
+ super(LABEL);
40
+ }
41
+
42
+ public function getParentAssignment(parent:Content):void {
43
+
44
+ }
45
+ }
46
+ }
@@ -0,0 +1,33 @@
1
+ package <%= base_package %>.models.domain {
2
+
3
+ import org.restfulx.collections.ModelsCollection;
4
+ import org.restfulx.models.RxTreeModel;
5
+
6
+ [Resource(name="content_assignments")]
7
+ [Bindable]
8
+ public class ContentAssignment extends RxTreeModel {
9
+
10
+ public static const LABEL:String = "name";
11
+
12
+ public var name:String;
13
+
14
+ public var author:String;
15
+
16
+ public var ancestorAs:String;
17
+
18
+ public var targetAs:String;
19
+
20
+ public var ancestor:Content;
21
+
22
+ public var target:Content;
23
+
24
+ public var descendents:ModelsCollection;
25
+
26
+ [BelongsTo]
27
+ public var parent:ContentAssignment;
28
+
29
+ public function ContentAssignment() {
30
+ super(LABEL);
31
+ }
32
+ }
33
+ }
@@ -0,0 +1,131 @@
1
+ package <%= base_package %>.models.domain {
2
+
3
+ import flash.events.Event;
4
+ import flash.events.EventDispatcher;
5
+
6
+ import mx.binding.utils.BindingUtils;
7
+
8
+ import <%= base_package %>.models.constant.DocumentType;
9
+ import <%= base_package %>.models.domain.Content;
10
+
11
+ [Bindable]
12
+ public class Document extends EventDispatcher {
13
+
14
+ /** Document isn't a RestfulX Model, but it acts like one, using Content as it's data */
15
+ public var content:Content;
16
+
17
+ public var desiredProperties:Array;
18
+
19
+ public var documentType:DocumentType;
20
+
21
+ public function Document() {
22
+ BindingUtils.bindSetter(dispatchChange, this, ["content", "title"]);
23
+ BindingUtils.bindSetter(dispatchChange, this, ["content", "body"]);
24
+ BindingUtils.bindSetter(dispatchChange, this, ["content", "abstract"]);
25
+ BindingUtils.bindSetter(dispatchChange, this, ["content", "menuTitle"]);
26
+ BindingUtils.bindSetter(dispatchChange, this, ["content", "subTitle"]);
27
+
28
+ desiredProperties = ["title", "body", "abstract", "menuTitle", "subTitle"];
29
+
30
+ content = new Content();
31
+ }
32
+
33
+ public function mapProperties(source:Object, target:Object, properties:*):void {
34
+ for each (var property:* in properties) {
35
+ target[property] = source[property];
36
+ }
37
+ }
38
+
39
+ protected function dispatchChange(property:*=null):void {
40
+ dispatchEvent(new Event(Event.CHANGE));
41
+ }
42
+
43
+ /**
44
+ * Create a snapshot of the current state of the document. This snapshot can
45
+ * be used to restore the document at a later time, for example when undoing
46
+ * a series of actions. To restore the document pass the snapshot to loadSnapshot.
47
+ */
48
+ public function createSnapshot():Snapshot {
49
+ var snapshot:DocumentSnapshot = new DocumentSnapshot();
50
+ mapProperties(snapshot, content, desiredProperties);
51
+ /*snapshot.title = content.title;
52
+ snapshot.body = content.body;
53
+ snapshot.abstract = content.abstract;
54
+ snapshot.menuTitle = content.menuTitle;
55
+ snapshot.subTitle = content.subTitle;*/
56
+ snapshot.type = documentType;
57
+
58
+ return snapshot;
59
+ }
60
+
61
+ /**
62
+ * Restore the document as it was at an earlier time. See createSnapshot.
63
+ */
64
+ public function loadSnapshot(snapshot:Snapshot):void {
65
+ loadSnapshotImpl(snapshot);
66
+ }
67
+
68
+ /**
69
+ * This is the actual implementation of loadSnapshot. Because there are problems
70
+ * with overriding methods in custom namespaces this method is needed to
71
+ * let subclasses override the loading of snapshots.
72
+ */
73
+ protected function loadSnapshotImpl(snapshot:Snapshot) : void {
74
+ if (snapshot is DocumentSnapshot) {
75
+ var s:DocumentSnapshot = DocumentSnapshot(snapshot);
76
+ mapProperties(content, s, desiredProperties);
77
+ } else {
78
+ throw new ArgumentError("Unsupported snapshot type");
79
+ }
80
+ }
81
+ }
82
+ }
83
+
84
+ import flash.utils.ByteArray;
85
+
86
+ import <%= base_package %>.models.constant.DocumentType;
87
+ import <%= base_package %>.models.domain.Snapshot;
88
+
89
+
90
+ /**
91
+ * The document snapshot implementation. It is based on the DocumentData VO and adds the
92
+ * type and the getters defined by the Snapshot interface.
93
+ */
94
+ class DocumentSnapshot implements Snapshot {
95
+
96
+ public var type:DocumentType;
97
+
98
+ public var title:String;
99
+
100
+ public var abstract:String;
101
+
102
+ public var menuTitle:String;
103
+
104
+ public var subTitle:String;
105
+
106
+ public var body:String;
107
+
108
+ public function get bytes():ByteArray {
109
+ var data:ByteArray = new ByteArray();
110
+
111
+ data.writeObject(this);
112
+
113
+ return data;
114
+ }
115
+
116
+ public function get xml():XML {
117
+ return <document type={type.type}>
118
+ <title>{title}</title>
119
+ <body>{body}</body>
120
+ <abstract>{abstract}</abstract>
121
+ <menuTitle>{menuTitle}</menuTitle>
122
+ <subTitle>{subTitle}</subTitle>
123
+ </document>;
124
+ }
125
+
126
+
127
+ public function DocumentSnapshot()
128
+ {
129
+ }
130
+
131
+ }
@@ -0,0 +1,19 @@
1
+ /* Copyright 2008 Theo Hultberg/Iconara */
2
+
3
+ package <%= base_package %>.models.domain {
4
+
5
+ import <%= base_package %>.models.constant.DocumentType;
6
+
7
+ /**
8
+ * This class currently does nothing different from PlainDocument, but the idea
9
+ * is that in the future it will support rich text documents.
10
+ */
11
+ public class PlainDocument extends Document {
12
+
13
+ public function PlainDocument() {
14
+ documentType = DocumentType.PLAIN;
15
+ }
16
+
17
+ }
18
+
19
+ }
@@ -0,0 +1,19 @@
1
+ /* Copyright 2008 Theo Hultberg/Iconara */
2
+
3
+ package <%= base_package %>.models.domain {
4
+
5
+ import <%= base_package %>.models.constant.DocumentType;
6
+
7
+ /**
8
+ * This class currently does nothing different from PlainDocument, but the idea
9
+ * is that in the future it will support rich text documents.
10
+ */
11
+ public class RichDocument extends Document {
12
+
13
+ public function RichDocument( ) {
14
+ documentType = DocumentType.RICH;
15
+ }
16
+
17
+ }
18
+
19
+ }
@@ -0,0 +1,13 @@
1
+ package <%= base_package %>.models.domain {
2
+
3
+ [Bindable]
4
+ public class Session {
5
+
6
+ public var login:String;
7
+
8
+ public var password:String;
9
+
10
+ public function Session() {
11
+ }
12
+ }
13
+ }
@@ -0,0 +1,21 @@
1
+ /* Copyright 2008 Theo Hultberg/Iconara */
2
+
3
+ package <%= base_package %>.models.domain
4
+ {
5
+ import flash.utils.ByteArray;
6
+
7
+ /**
8
+ * Classes implementing this interface represent snapshots of other object's state
9
+ * at a given time. The snapshot can be serialized either as ByteArray or XML.
10
+ *
11
+ * Currently there is no way to restore a snapshot from a serialized representation.
12
+ */
13
+ public interface Snapshot {
14
+
15
+ function get bytes():ByteArray ;
16
+
17
+ function get xml():XML ;
18
+
19
+ }
20
+
21
+ }
@@ -0,0 +1,28 @@
1
+ package <%= base_package %>.models.domain {
2
+
3
+ import org.restfulx.collections.ModelsCollection;
4
+ import org.restfulx.models.RxModel;
5
+
6
+ [Resource(name="users")]
7
+ [Bindable]
8
+ public class User extends RxModel {
9
+ public static const LABEL:String = "title";
10
+
11
+ public var title:String;
12
+
13
+ [Ignored]
14
+ public var login:String;
15
+
16
+ [Lazy]
17
+ [BelongsTo]
18
+ public var address:Address;
19
+
20
+ [Lazy]
21
+ [BelongsTo]
22
+ public var account:Account;
23
+
24
+ public function User() {
25
+ super(LABEL);
26
+ }
27
+ }
28
+ }
@@ -0,0 +1,61 @@
1
+ /* Copyright 2008 Theo Hultberg/Iconara */
2
+
3
+ package <%= base_package %>.models.factory
4
+ {
5
+ import flash.utils.Dictionary;
6
+
7
+ import <%= base_package %>.models.constant.DocumentType;
8
+ import <%= base_package %>.models.domain.Document;
9
+ import <%= base_package %>.models.domain.PlainDocument;
10
+ import <%= base_package %>.models.domain.RichDocument;
11
+
12
+ /**
13
+ * A factory for creating Document instances. The specific implementation created
14
+ * depends on the DocumentType that is passed to the createDocument method.
15
+ */
16
+ public class DocumentFactory {
17
+
18
+ private static var _factoryMap : Dictionary;
19
+
20
+
21
+ private function get factoryMap( ):Dictionary {
22
+ if ( _factoryMap == null ) {
23
+ _factoryMap = new Dictionary();
24
+ _factoryMap[DocumentType.PLAIN] = PlainDocument;
25
+ _factoryMap[DocumentType.RICH] = RichDocument;
26
+ }
27
+
28
+ return _factoryMap;
29
+ }
30
+
31
+
32
+ /**
33
+ * Create a new document of the specified type using some default data.
34
+ *
35
+ * Throws an exception if this factory cannot create documents of the specified type.
36
+ */
37
+ public function createDocument(type:DocumentType, data:*=null):Document {
38
+ if ( factoryMap[type] == null ) {
39
+ throw new ArgumentError("Cannot create document, unknown type: \"" + type + "\"");
40
+ }
41
+
42
+ var documentClass : Class = factoryMap[type];
43
+
44
+ var document : Document = new documentClass();
45
+
46
+ if (data != null ) {
47
+
48
+ } else {
49
+ document.content.title = "Untitled ";
50
+ document.content.body = "";
51
+ document.content.abstract = "";
52
+ document.content.menuTitle = "";
53
+ document.content.subTitle = "";
54
+ }
55
+
56
+ return document;
57
+ }
58
+
59
+ }
60
+
61
+ }