emergent-core 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
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