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,330 @@
1
+ require 'open-uri'
2
+ require File.join(File.dirname(__FILE__), '..', '..', 'lib', 'restfulx') if !defined?(RestfulX)
3
+
4
+ class EmergentConfigGenerator < Rails::Generator::NamedBase
5
+ include RestfulX::Configuration
6
+
7
+ attr_reader :project_name,
8
+ :flex_project_name,
9
+ :base_package,
10
+ :base_folder,
11
+ :command_controller_name,
12
+ :component_names,
13
+ :application_tag,
14
+ :use_air,
15
+ # Added
16
+ :model_names,
17
+ :event_names
18
+
19
+ def initialize(runtime_args, runtime_options = {})
20
+ super
21
+ @project_name, @flex_project_name, @command_controller_name, @base_package, @base_folder = extract_names
22
+
23
+ # if we are updating main file only we probably want to maintain the type of project it is
24
+ if options[:main_only]
25
+ project_file_name = APP_ROOT + '/.project'
26
+ if File.exist?(project_file_name)
27
+ puts "Cannot combine -m (--main-app) and -a (--air) flags at the same time for an existing application.\n" <<
28
+ 'If you want to convert to AIR, remove -m flag.' if options[:air_config]
29
+ @use_air = true if File.read(project_file_name) =~/com.adobe.flexbuilder.apollo.apollobuilder/m
30
+ else
31
+ puts "Flex Builder project file doesn't exist. You should run 'rx_config' with -a (--air) option " <<
32
+ "or no arguments first to generate primary project structure."
33
+ exit 0;
34
+ end
35
+ else
36
+ @use_air = options[:air_config]
37
+ end
38
+
39
+ if @use_air
40
+ @application_tag = 'WindowedApplication'
41
+ else
42
+ @application_tag = 'Application'
43
+ end
44
+
45
+ @component_names = []
46
+ if File.exists?("app/flex/#{base_folder}/components/generated")
47
+ @component_names = list_mxml_files("app/flex/#{base_folder}/components/generated")
48
+ end
49
+ end
50
+
51
+ def manifest
52
+ record do |m|
53
+ if !options[:main_only]
54
+ m.file 'core/restfulx_tasks.rake', 'lib/tasks/restfulx_tasks.rake'
55
+ m.file 'core/emergent_tasks.rake', 'lib/tasks/emergent_tasks.rake'
56
+ m.file 'core/flex.properties', '.flexProperties'
57
+ m.file 'core/restfulx.yml', 'config/restfulx.yml'
58
+ if @use_air
59
+ m.template 'core/actionscriptair.properties', '.actionScriptProperties'
60
+ m.template 'core/projectair.properties', '.project'
61
+ else
62
+ m.template 'core/actionscript.properties', '.actionScriptProperties'
63
+ m.template 'core/project.properties', '.project'
64
+ end
65
+
66
+ m.directory 'html-template/history'
67
+ %w(index.template.html AC_OETags.js playerProductInstall.swf).each do |file|
68
+ m.file "core/html-template/#{file}", "html-template/#{file}"
69
+ end
70
+
71
+ %w(history.css history.js historyFrame.html).each do |file|
72
+ m.file "core/html-template/history/#{file}", "html-template/history/#{file}"
73
+ end
74
+
75
+ # DIRECTORY
76
+ # src directory
77
+ %w(extras assets).each do |dir|
78
+ m.directory "app/flex/#{dir}"
79
+ end
80
+ %w(models views controllers).each do |dir|
81
+ m.directory "app/flex/#{base_folder}/#{dir}"
82
+ end
83
+ # models directory
84
+ %w(domain constant factory presentation).each do |dir|
85
+ m.directory "app/flex/#{base_folder}/models/#{dir}"
86
+ end
87
+ # views directory
88
+ %w(factory main navigation pages
89
+ home aboutUs contactUs gallery
90
+ login account profile document).each do |dir|
91
+ m.directory "app/flex/#{base_folder}/views/#{dir}"
92
+ end
93
+ # controllers directory
94
+ %w(command event manager map).each do |dir|
95
+ m.directory "app/flex/#{base_folder}/controllers/#{dir}"
96
+ end
97
+ # assets directory
98
+ %w(icons fonts styles images text html videos audio pdfs).each do |dir|
99
+ m.directory "app/flex/assets/#{dir}"
100
+ end
101
+ m.directory "config"
102
+
103
+ # RAILS FILES
104
+ # library and general config files
105
+ m.template 'lib/authenticated_system.rb', File.join("lib", "authenticated_system.rb")
106
+ m.template 'lib/authenticated_test_helper.rb', File.join("lib", "authenticated_test_helper.rb")
107
+ m.template 'lib/flash_session_hack.rb', File.join("config/initializers", "flash_session_hack.rb")
108
+ m.template 'lib/site_keys.rb', File.join("config/initializers", "site_keys.rb")
109
+ m.template 'lib/app_controller.rb.erb', File.join("app/controllers", "application.rb")
110
+ m.template 'config/Capfile', File.join("", "Capfile")
111
+ m.template 'config/deploy.rb', File.join("config", "deploy.rb")
112
+
113
+ # Models
114
+ %w(account account_mailer account_observer address asset asset_assignment category
115
+ content content_assignment image post section site tag user).each do |file|
116
+ m.template "app/models/#{file}.rb", "app/models/#{file}.rb"
117
+ end
118
+
119
+ # Account Views
120
+ m.directory "app/views/account_mailer"
121
+ %w(activation signup_notification).each do |file|
122
+ m.file "app/views/account_mailer/#{file}.erb", File.join("app/views/account_mailer/#{file}.erb")
123
+ end
124
+
125
+ # Controllers
126
+ %w(accounts_controller addresses_controller users_controller sites_controller
127
+ sessions_controller contents_controller content_assignments_controller).each do |file|
128
+ m.template "app/controllers/#{file}.rb", "app/controllers/#{file}.rb"
129
+ end
130
+
131
+ # Helpers
132
+ m.file 'app/helpers/accounts_helper.rb', File.join("app/helpers",
133
+ "accounts_helper.rb")
134
+
135
+ # m.template 'controls/accounts_helper.rb.zip', File.join("app/helpers",
136
+ # "accounts_helper.rb")
137
+
138
+ # Routing file! This is where everything happens!
139
+ m.template 'config/routes.rb', File.join("config",
140
+ "routes.rb")
141
+
142
+ # FLEX FILES
143
+ # Factories
144
+ # Maps
145
+ %w(ResourceFactory DocumentFactory DocumentViewFactory).each do |file|
146
+ m.template "app/flex/application/models/factory/#{file}.as",
147
+ "app/flex/#{base_folder}/models/factory/#{file}.as"
148
+ end
149
+
150
+ # Maps
151
+ %w(ManagerPresentationModelMap PresentationModelViewMap PresenterViewMap ObjectMap
152
+ DocumentsMap DocumentMap).each do |file|
153
+ m.template "app/flex/application/controllers/map/#{file}.mxml", "app/flex/#{base_folder}/controllers/map/#{file}.mxml"
154
+ end
155
+
156
+ # Managers
157
+ %w(AboutUsManager AccountManager AuthenticationManager ContentManager
158
+ HomeManager MainManager PagesManager SiteManager ResourceManager
159
+ DocumentManager DocumentsManager UndoManager).each do |file|
160
+ m.template "app/flex/application/controllers/manager/#{file}.as",
161
+ "app/flex/#{base_folder}/controllers/manager/#{file}.as"
162
+ end
163
+
164
+ # Commands
165
+ %w(ICommand Undoable UpdateDocumentCommand).each do |file|
166
+ m.template "app/flex/application/controllers/command/#{file}.as",
167
+ "app/flex/#{base_folder}/controllers/command/#{file}.as"
168
+ end
169
+
170
+ # Events
171
+ %w(ResourceEvent NavigationEvent DocumentEvent UndoEvent).each do |file|
172
+ m.template "app/flex/application/controllers/event/#{file}.as",
173
+ "app/flex/#{base_folder}/controllers/event/#{file}.as"
174
+ end
175
+
176
+ # Domain Models
177
+ %w(Account Address Asset AssetAssignment Content ContentAssignment Session User
178
+ Document RichDocument PlainDocument Snapshot).each do |file|
179
+ m.template "app/flex/application/models/domain/#{file}.as",
180
+ "app/flex/#{base_folder}/models/domain/#{file}.as"
181
+ end
182
+
183
+ # Constants
184
+ %w(Resource ResourceAction ResourceResult DocumentType).each do |file|
185
+ m.template "app/flex/application/models/constant/#{file}.as",
186
+ "app/flex/#{base_folder}/models/constant/#{file}.as"
187
+ end
188
+
189
+ # Presentation Models
190
+ %w(AboutUsModel AccountModel AuthenticationModel ContactUsModel DocumentModel
191
+ ContentModel DocumentsModel HomeModel MainModel PagesModel ProfileModel ResourceModel
192
+ NavigationBarLeftModel NavigationBarRightModel NavigationBarTopModel NavigationBarBottomModel).each do |file|
193
+ m.template "app/flex/application/models/presentation/#{file}.as",
194
+ "app/flex/#{base_folder}/models/presentation/#{file}.as"
195
+ end
196
+
197
+ # Views
198
+ %w(about_us account contact_us gallery home login main pages profile).each do |file|
199
+ m.template "app/flex/application/views/#{file}/#{file}.mxml",
200
+ "app/flex/#{base_folder}/views/#{file.camelcase.dcfirst}/#{file.camelcase}View.mxml"
201
+ end
202
+
203
+ # Presenters
204
+ %w(home main pages).each do |file|
205
+ # FIX!
206
+ m.template "app/flex/application/views/#{file}/#{file}_presenter.as", "app/flex/#{base_folder}/views/#{file}/#{file.camelcase}Presenter.as"
207
+ end
208
+
209
+ # Troparchies
210
+ %w(home main pages).each do |file|
211
+ # FIX!
212
+ m.template "app/flex/application/views/#{file}/#{file}_troparchy.mxml", "app/flex/#{base_folder}/views/#{file}/#{file.camelcase}Troparchy.mxml"
213
+ end
214
+
215
+ # Document View Extras :)
216
+ %w(documents plain_document rich_document document).each do |file|
217
+ m.template "app/flex/application/views/document/#{file}.mxml",
218
+ "app/flex/#{base_folder}/views/document/#{file.camelcase}View.mxml"
219
+ end
220
+
221
+ # Navigation Extras :)
222
+ %w(navigation_bars navigation_bar_left navigation_bar_right navigation_bar_top navigation_bar_bottom).each do |file|
223
+ m.template "app/flex/application/views/navigation/#{file}_view.mxml",
224
+ "app/flex/#{base_folder}/views/navigation/#{file.camelcase}View.mxml"
225
+ m.template "app/flex/application/views/navigation/#{file}_presenter.as",
226
+ "app/flex/#{base_folder}/views/navigation/#{file.camelcase}Presenter.as"
227
+ end
228
+ m.template "app/flex/application/views/navigation/navigation_bars_troparchy.mxml", "app/flex/#{base_folder}/views/navigation/NavigationBarsTroparchy.mxml"
229
+
230
+ # LIBRARIES AND EXTRAS
231
+ # Add sample html file to aboutme
232
+ %w(lorem.html).each do |file|
233
+ m.file "app/flex/assets/html/#{file}", "app/flex/assets/html/#{file}"
234
+ end
235
+
236
+ # Add all of the SWC Libraries to the Project :)
237
+ %w(as3crypto-1.3patched.swc as3ds-1.04.swc as3httpclientlib-1.0.swc
238
+ as3corelib-0.92.1.swc flare.swc fluint.swc mate_0_8_6_enhanced.swc
239
+ pv3d.swc tweenMax.swc flexlib.swc containerEx.swc restfulx.swc
240
+ flex2BrowserManager.swc urlkitFlex3.swc openflux.swc analytics.swc).each do |file|
241
+ m.file "lib/#{file}", "lib/#{file}"
242
+ end
243
+
244
+ # Add all of the Theme Libraries to the Style directory
245
+ %w(itunes7Bg.jpg jukebox.css jukeboxGfx.swf obsidian.css obsidianBg.jpg obsidianGfx.swf).each do |file|
246
+ m.file "app/flex/assets/styles/#{file}", "app/flex/assets/styles/#{file}"
247
+ end
248
+
249
+ # Add all of the Images used in the Papervision Skybox
250
+ %w(hot_nebula_0.jpg hot_nebula_90.jpg hot_nebula_180.jpg
251
+ hot_nebula_270.jpg hot_nebula_bottom.jpg hot_nebula_top.jpg).each do |file|
252
+ m.file "app/flex/assets/images/#{file}", "app/flex/assets/images/#{file}"
253
+ end
254
+
255
+ # Add some alex grey images for showing off layouts
256
+ m.directory "app/flex/assets/images/alexgrey"
257
+ %w(Picture3.png Picture4.png Picture5.png Picture6.png
258
+ Picture7.png Picture8.png Picture9.png Picture10.png
259
+ Picture11.png Picture12.png Picture13.png Picture14.png).each do |file|
260
+ m.file "app/flex/assets/images/alexgrey/#{file}", "app/flex/assets/images/alexgrey/#{file}"
261
+ end
262
+
263
+ # Add all of the Fonts to the assets/font directory
264
+ %w(MyriadPro-Bold.otf MyriadPro-Regular.otf).each do |file|
265
+ m.file "app/flex/assets/fonts/#{file}", "app/flex/assets/fonts/#{file}"
266
+ end
267
+
268
+ m.dependency 'rx_controller', @args
269
+
270
+ # Add all of our Migrations
271
+ m.directory "db/migrate"
272
+ unless options[:skip_migration]
273
+ %w(assets asset_assignments addresses accounts
274
+ sessions contents content_assignments users).each_with_index do |file, i|
275
+ m.template "db/migrate/create_#{file}.rb", "db/migrate/2009021800470#{i}_create_#{file}.rb"
276
+ end
277
+ end
278
+ end
279
+
280
+ # MAIN APP CONFIG
281
+ # Main app and Config
282
+ m.template 'core/project-textmate.erb', "#{project_name.underscore}.tmproj"
283
+ m.template 'core/mainapp.mxml', File.join('app', 'flex', "#{project_name}.mxml")
284
+ m.template 'core/mainapp-config.xml', File.join('app', 'flex', "#{project_name}-config.xml")
285
+ m.template 'core/mainair-app.xml', File.join('app', 'flex', "#{project_name}-app.xml") if @use_air
286
+ end
287
+ end
288
+
289
+ protected
290
+ def add_options!(opt)
291
+ opt.separator ''
292
+ opt.separator 'Options:'
293
+ opt.on("-m", "--main-only", "Only generate the main Flex/AIR application file.",
294
+ "Default: false") { |v| options[:main_only] = v }
295
+ opt.on("-a", "--air", "Configure AIR project instead of Flex. Flex is default.",
296
+ "Default: false") { |v| options[:air_config] = v }
297
+ opt.on("--skip-framework", "Don't fetch the latest framework binary. You'll have to link/build the framework yourself.",
298
+ "Default: false") { |v| options[:skip_framework] = v }
299
+ opt.on("--skip-migration",
300
+ "Don't generate a migration file for this model") { |v| options[:skip_migration] = v }
301
+ end
302
+
303
+ # These three methods, model_names, list_as_files, and event_names, are used to
304
+ # create the Events.as class properly
305
+ def model_names
306
+ @model_names = []
307
+ if File.exists?("app/flex/#{base_folder}/models/domain")
308
+ @model_names = list_as_files("app/flex/#{base_folder}/models/domain")
309
+ end
310
+ end
311
+
312
+ def list_as_files(dir_name)
313
+ Dir.entries(dir_name).grep(/\.as$/).map { |name| name.sub(/\.as$/, "") }
314
+ end
315
+
316
+ def event_names
317
+ @event_names = []
318
+ if File.exists?("app/flex/#{base_folder}/models")
319
+ @event_names = list_as_files_for_events("app/flex/#{base_folder}/models")
320
+ end
321
+ end
322
+
323
+ def list_as_files_for_events(dir_name)
324
+ Dir.entries(dir_name).grep(/\.as$/).map { |name| name.sub(/\.as$/, "") }
325
+ end
326
+
327
+ def banner
328
+ "Usage: #{$0} #{spec.name}"
329
+ end
330
+ end
@@ -0,0 +1,104 @@
1
+ class AccountsController < ApplicationController
2
+ skip_before_filter :login_required, :except => :update
3
+
4
+ # Protect these actions behind an admin login
5
+ before_filter :admin_required, :only => [:suspend, :unsuspend, :destroy, :purge]
6
+ before_filter :find_account, :only => [:suspend, :unsuspend, :destroy, :purge]
7
+
8
+ # render new.rhtml
9
+ def new
10
+ @account = Account.new
11
+ end
12
+
13
+ def create
14
+ logout_keeping_session!
15
+ @account = Account.new(params[:account])
16
+ @account.register! if @account && @account.valid?
17
+ success = @account && @account.valid?
18
+ if success && @account.errors.empty?
19
+ respond_to do |format|
20
+ format.html do
21
+ redirect_back_or_default('/')
22
+ flash[:notice] = "Thanks for signing up! We're sending you an email with your activation code."
23
+ end
24
+ format.fxml { render :fxml => @account.to_fxml(:only => [:id, :name, :login, :email]) }
25
+ format.xml { render :xml => @account.to_xml(:only => [:id, :name, :login, :email]),
26
+ :status => :created, :location => @account }
27
+ end
28
+ else
29
+ respond_to do |format|
30
+ format.html do
31
+ flash[:error] = "We couldn't set up that account, sorry. Please try again, or contact an admin (link is above)."
32
+ render :action => 'new'
33
+ end
34
+ format.fxml { render :fxml => @account.errors }
35
+ format.xml { render :xml => @account.errors, :status => :unprocessable_entity }
36
+ end
37
+ end
38
+ end
39
+
40
+ def activate
41
+ logout_keeping_session!
42
+ account = Account.find_by_activation_code(params[:activation_code]) unless params[:activation_code].blank?
43
+ case
44
+ when (!params[:activation_code].blank?) && account && !account.active?
45
+ account.activate!
46
+ flash[:notice] = "Signup complete! Please sign in to continue."
47
+ redirect_to '/'
48
+ when params[:activation_code].blank?
49
+ flash[:error] = "The activation code was missing. Please follow the URL from your email."
50
+ redirect_back_or_default('/')
51
+ else
52
+ flash[:error] = "We couldn't find a account with that activation code -- check your email? Or maybe you've already activated -- try signing in."
53
+ redirect_back_or_default('/')
54
+ end
55
+ end
56
+
57
+ def suspend
58
+ @account.suspend!
59
+ redirect_to accounts_path
60
+ end
61
+
62
+ def unsuspend
63
+ @account.unsuspend!
64
+ redirect_to accounts_path
65
+ end
66
+
67
+ def destroy
68
+ @account.delete!
69
+ redirect_to accounts_path
70
+ end
71
+
72
+ def purge
73
+ @account.destroy
74
+ redirect_to accounts_path
75
+ end
76
+
77
+
78
+ # There's no page here to update or destroy a account. If you add those, be
79
+ # smart -- make sure you check that the visitor is authorized to do so, that they
80
+ # supply their old password along with a new one to update it, etc.
81
+
82
+ # TODO: add old password checking and only update name, email and password fields
83
+ def update
84
+ @account = Account.current_account
85
+ respond_to do |format|
86
+ if @account.update_attributes(params[:account])
87
+ flash[:notice] = 'User was successfully updated.'
88
+ format.html { redirect_to(@user) }
89
+ format.xml { head :ok }
90
+ format.fxml { render :fxml => @account.to_fxml(:only => [:id, :name, :login, :email],
91
+ :methods => [:photo_url]) }
92
+ else
93
+ format.html { render :action => "edit" }
94
+ format.xml { render :xml => @account.errors, :status => :unprocessable_entity }
95
+ format.fxml { render :fxml => @account.errors }
96
+ end
97
+ end
98
+ end
99
+
100
+ protected
101
+ def find_account
102
+ @account = Account.find(params[:id])
103
+ end
104
+ end
@@ -0,0 +1,97 @@
1
+ class AddressesController < ApplicationController
2
+ # GET /addresses
3
+ # GET /addresses.xml
4
+ # GET /addresses.fxml
5
+ def index
6
+ @addresses = Address.find(:all)
7
+
8
+ respond_to do |format|
9
+ format.html # index.html.erb
10
+ format.xml { render :xml => @addresses }
11
+ format.fxml { render :fxml => @addresses }
12
+ end
13
+ end
14
+
15
+ # GET /addresses/1
16
+ # GET /addresses/1.xml
17
+ # GET /addresses/1.fxml
18
+ def show
19
+ @address = Address.find(params[:id])
20
+
21
+ respond_to do |format|
22
+ format.html # show.html.erb
23
+ format.xml { render :xml => @address }
24
+ format.fxml { render :fxml => @address }
25
+ end
26
+ end
27
+
28
+ # GET /addresses/new
29
+ # GET /addresses/new.xml
30
+ def new
31
+ @address = Address.new
32
+
33
+ respond_to do |format|
34
+ format.html # new.html.erb
35
+ format.xml { render :xml => @address }
36
+ end
37
+ end
38
+
39
+ # GET /addresses/1/edit
40
+ def edit
41
+ @address = Address.find(params[:id])
42
+ end
43
+
44
+ # POST /addresses
45
+ # POST /addresses.xml
46
+ # POST /addresses.fxml
47
+ def create
48
+ @address = Address.new(params[:address])
49
+
50
+ respond_to do |format|
51
+ if @address.save
52
+ flash[:notice] = 'Address was successfully created.'
53
+ format.html { redirect_to(@address) }
54
+ format.xml { render :xml => @address, :status => :created, :location => @address }
55
+ format.fxml { render :fxml => @address }
56
+ else
57
+ format.html { render :action => "new" }
58
+ format.xml { render :xml => @address.errors, :status => :unprocessable_entity }
59
+ format.fxml { render :fxml => @address.errors }
60
+ end
61
+ end
62
+ end
63
+
64
+ # PUT /addresses/1
65
+ # PUT /addresses/1.xml
66
+ # PUT /addresses/1.fxml
67
+ def update
68
+ @address = Address.find(params[:id])
69
+
70
+ respond_to do |format|
71
+ if @address.update_attributes(params[:address])
72
+ flash[:notice] = 'Address was successfully updated.'
73
+ format.html { redirect_to(@address) }
74
+ format.xml { head :ok }
75
+ format.fxml { render :fxml => @address }
76
+ else
77
+ format.html { render :action => "edit" }
78
+ format.xml { render :xml => @address.errors, :status => :unprocessable_entity }
79
+ format.fxml { render :fxml => @address.errors }
80
+ end
81
+ end
82
+ end
83
+
84
+ # DELETE /addresses/1
85
+ # DELETE /addresses/1.xml
86
+ # DELETE /addresses/1.fxml
87
+ def destroy
88
+ @address = Address.find(params[:id])
89
+ @address.destroy
90
+
91
+ respond_to do |format|
92
+ format.html { redirect_to(addresses_url) }
93
+ format.xml { head :ok }
94
+ format.fxml { render :fxml => @address }
95
+ end
96
+ end
97
+ end
@@ -0,0 +1,26 @@
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
+ include AuthenticatedSystem
8
+
9
+ before_filter :login_required
10
+
11
+ before_filter :set_current_account
12
+
13
+ # See ActionController::RequestForgeryProtection for details
14
+ # Uncomment the :secret if you're not using the cookie session store
15
+ protect_from_forgery # :secret => '3f6014c50e2266aa27431c8e0022ea3f'
16
+
17
+ # See ActionController::Base for details
18
+ # Uncomment this to filter the contents of submitted sensitive data parameters
19
+ # from your application log (in this case, all fields with names like "password").
20
+ # filter_parameter_logging :password
21
+
22
+ protected
23
+ def set_current_account
24
+ Account.current_account = self.current_account
25
+ end
26
+ end
@@ -0,0 +1,97 @@
1
+ class ContentAssignmentsController < ApplicationController
2
+ # GET /content_assignments
3
+ # GET /content_assignments.xml
4
+ # GET /content_assignments.fxml
5
+ def index
6
+ @content_assignments = ContentAssignment.find(:all)
7
+
8
+ respond_to do |format|
9
+ format.html # index.html.erb
10
+ format.xml { render :xml => @content_assignments }
11
+ format.fxml { render :fxml => @content_assignments }
12
+ end
13
+ end
14
+
15
+ # GET /content_assignments/1
16
+ # GET /content_assignments/1.xml
17
+ # GET /content_assignments/1.fxml
18
+ def show
19
+ @content_assignment = ContentAssignment.find(params[:id])
20
+
21
+ respond_to do |format|
22
+ format.html # show.html.erb
23
+ format.xml { render :xml => @content_assignment }
24
+ format.fxml { render :fxml => @content_assignment }
25
+ end
26
+ end
27
+
28
+ # GET /content_assignments/new
29
+ # GET /content_assignments/new.xml
30
+ def new
31
+ @content_assignment = ContentAssignment.new
32
+
33
+ respond_to do |format|
34
+ format.html # new.html.erb
35
+ format.xml { render :xml => @content_assignment }
36
+ end
37
+ end
38
+
39
+ # GET /content_assignments/1/edit
40
+ def edit
41
+ @content_assignment = ContentAssignment.find(params[:id])
42
+ end
43
+
44
+ # POST /content_assignments
45
+ # POST /content_assignments.xml
46
+ # POST /content_assignments.fxml
47
+ def create
48
+ @content_assignment = ContentAssignment.new(params[:content_assignment])
49
+
50
+ respond_to do |format|
51
+ if @content_assignment.save
52
+ flash[:notice] = 'ContentAssignment was successfully created.'
53
+ format.html { redirect_to(@content_assignment) }
54
+ format.xml { render :xml => @content_assignment, :status => :created, :location => @content_assignment }
55
+ format.fxml { render :fxml => @content_assignment }
56
+ else
57
+ format.html { render :action => "new" }
58
+ format.xml { render :xml => @content_assignment.errors, :status => :unprocessable_entity }
59
+ format.fxml { render :fxml => @content_assignment.errors }
60
+ end
61
+ end
62
+ end
63
+
64
+ # PUT /content_assignments/1
65
+ # PUT /content_assignments/1.xml
66
+ # PUT /content_assignments/1.fxml
67
+ def update
68
+ @content_assignment = ContentAssignment.find(params[:id])
69
+
70
+ respond_to do |format|
71
+ if @content_assignment.update_attributes(params[:content_assignment])
72
+ flash[:notice] = 'ContentAssignment was successfully updated.'
73
+ format.html { redirect_to(@content_assignment) }
74
+ format.xml { head :ok }
75
+ format.fxml { render :fxml => @content_assignment }
76
+ else
77
+ format.html { render :action => "edit" }
78
+ format.xml { render :xml => @content_assignment.errors, :status => :unprocessable_entity }
79
+ format.fxml { render :fxml => @content_assignment.errors }
80
+ end
81
+ end
82
+ end
83
+
84
+ # DELETE /content_assignments/1
85
+ # DELETE /content_assignments/1.xml
86
+ # DELETE /content_assignments/1.fxml
87
+ def destroy
88
+ @content_assignment = ContentAssignment.find(params[:id])
89
+ @content_assignment.destroy
90
+
91
+ respond_to do |format|
92
+ format.html { redirect_to(content_assignments_url) }
93
+ format.xml { head :ok }
94
+ format.fxml { render :fxml => @content_assignment }
95
+ end
96
+ end
97
+ end