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,125 @@
1
+ /*
2
+ Copyright 2008 Nahuel Foronda/AsFusion
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License. Y
6
+ ou may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, s
11
+ oftware distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and limitations under the License
14
+
15
+ Author: Nahuel Foronda, Principal Architect
16
+ nahuel at asfusion dot com
17
+
18
+ @ignore
19
+ */
20
+ package com.fourD.core
21
+ {
22
+ import com.asfusion.mate.core.mate;
23
+ import com.asfusion.mate.events.UnhandledMessageFaultEvent;
24
+ import com.asfusion.mate.utils.debug.DebuggerUtil;
25
+
26
+ import mx.messaging.*;
27
+ import mx.messaging.events.MessageEvent;
28
+ import mx.messaging.events.MessageFaultEvent;
29
+
30
+ use namespace mate;
31
+ /**
32
+ * The <code>MessageHandlers</code> tag allows you to register a set of handlers as a consumer of a Flex Messaging Service.
33
+ * All the tags inside the <code>MessageHandlers</code> tag will be executed in order when a <code>Message</code> matching the
34
+ * criteria is received. This tag accepts the same attributes as the <code>Consumer</code> tag.
35
+ */
36
+ public class PheronReceptors
37
+
38
+ public var pheron:Pheron2;
39
+
40
+ protected var initializeHandlersChanged:Boolean;
41
+ protected var startHandlersChanged:Boolean;
42
+ protected var completeHandlersChanged:Boolean;
43
+
44
+ private var _initializeHandlers:Array;
45
+ public function get initializeHandlers():Array { return _initializeHandlers; }
46
+ [ArrayElementType("com.asfusion.mate.actions.IAction")]
47
+ public function set initializeHandlers(value:Array):void {
48
+ _initializeHandlers = value;
49
+ initializeHandlersChanged = true;
50
+ validateNow();
51
+ }
52
+
53
+ private var _startHandlers:Array;
54
+ public function get startHandlers():Array { return _startHandlers; }
55
+ [ArrayElementType("com.asfusion.mate.actions.IAction")]
56
+ public function set startHandlers(value:Array):void {
57
+ _startHandlers = value;
58
+ startHandlersChanged = true;
59
+ validateNow();
60
+ }
61
+
62
+ private var _completeHandlers:Array;
63
+ public function get completeHandlers():Array { return _completeHandlers; }
64
+ [ArrayElementType("com.asfusion.mate.actions.IAction")]
65
+ public function set completeHandlers(value:Array):void {
66
+ _completeHandlers = value;
67
+ completeHandlersChanged = true;
68
+ validateNow();
69
+ }
70
+
71
+ public function PheronReceptor()
72
+ {
73
+ super();
74
+ }
75
+
76
+ override public function errorString():String
77
+ {
78
+ var str:String = "Destination:"+ destination + ". Error was found in a MessageHandlers list in file "
79
+ + DebuggerUtil.getClassName(document);
80
+ return str;
81
+ }
82
+
83
+ protected function tectonStart(pheron:Pheron2):void
84
+ {
85
+ var currentScope:TectonScope = new TectonScope(event,debug, map, inheritedScope);
86
+ currentScope.owner = this;
87
+ currentScope.tecton = pheron.tecton;
88
+ currentScope.tropon = pheron.tropon;
89
+ currentScope.kanon = pheron.kanon;
90
+ currentScope.action = pheron.action;
91
+ runSequence(currentScope, startHandlers);
92
+ }
93
+
94
+ protected function tectonComplete(pheron:Pheron2):void
95
+ {
96
+ var currentScope:TectonScope = new TectonScope(event,debug, map, inheritedScope);
97
+ currentScope.owner = this;
98
+ currentScope.tecton = pheron.tecton;
99
+ currentScope.tropon = pheron.tropon;
100
+ currentScope.kanon = pheron.kanon;
101
+ currentScope.action = pheron.action;
102
+ runSequence(currentScope, completeHandlers);
103
+ }
104
+ /*-----------------------------------------------------------------------------------------------------------
105
+ * Override Protected methods
106
+ -------------------------------------------------------------------------------------------------------------*/
107
+
108
+ /*-.........................................commitProperties..........................................*/
109
+ /**
110
+ * Processes the properties set on the component.
111
+ */
112
+ override protected function commitProperties():void
113
+ {
114
+ if (initializeHandlersChanged) {
115
+ initializeHandlersChanged = false;
116
+ }
117
+ if (startHandlersChanged) {
118
+ startHandlersChanged = false;
119
+ }
120
+ if (completeHandlersChanged) {
121
+ completeHandlersChanged = false;
122
+ }
123
+ }
124
+ }
125
+ }
@@ -0,0 +1,57 @@
1
+ package com.fourD.core {
2
+
3
+ public dynamic class Properties {
4
+ /*-----------------------------------------------------------------------------------------------------------
5
+ * Public Fields
6
+ -------------------------------------------------------------------------------------------------------------*/
7
+ /**
8
+ * If you need to specify a property that is called "id", you need
9
+ * to use <code>_id</code> instead because Flex will normally use the <code>id</code>
10
+ * property as the identifier for this tag.
11
+ */
12
+ public var _id:*;
13
+
14
+ /*-----------------------------------------------------------------------------------------------------------
15
+ * Public static methods
16
+ -------------------------------------------------------------------------------------------------------------*/
17
+ /**
18
+ * This method will parse all the SmartObjects and set the real values in the
19
+ * <code>target</code> Object
20
+ */
21
+ public static function copyValuesToTarget(source:Object, target:Object):Object
22
+ {
23
+
24
+ for (var propertyName:String in source)
25
+ {
26
+ var realValue:* = source[propertyName];
27
+ try
28
+ {
29
+ target[propertyName] = realValue;
30
+ }
31
+ catch(error:ReferenceError)
32
+ {
33
+ }
34
+ catch(error:TypeError)
35
+ {
36
+ }
37
+
38
+ }
39
+ if(source._id) target['id'] = source._id;
40
+ return target;
41
+ }
42
+
43
+ /*-----------------------------------------------------------------------------------------------------------
44
+ * Public Methods
45
+ -------------------------------------------------------------------------------------------------------------*/
46
+ /**
47
+ * Similar to <code>smartCopy</code> this method will copy the properties
48
+ * to the target object.
49
+ * The difference is that it will copy its own properties to the target.
50
+ */
51
+ public function injectProperties(target:Object):Object
52
+ {
53
+ return copyValuesToTarget(this, target);
54
+ }
55
+
56
+ }
57
+ }
@@ -0,0 +1,50 @@
1
+ package com.fourD.core
2
+ {
3
+ import flash.utils.Dictionary;
4
+ import flash.utils.getQualifiedClassName;
5
+
6
+ public class Router
7
+ {
8
+ private var views:Dictionary;
9
+ // injected from the application...
10
+ public var viewInstances:Dictionary;
11
+
12
+ public function Router()
13
+ {
14
+ views = new Dictionary();
15
+ viewInstances = new Dictionary();
16
+ }
17
+
18
+ public static function mapClasses(classes:Array, cache:Boolean = true):void {
19
+ for each (var view:Class in views) {
20
+ var fqn:String = getQualifiedClassName(view);
21
+
22
+ var viewName:String = fqn.split("::")[1] as String;
23
+ views[view] = fqn;
24
+ views[fqn] = view;
25
+ }
26
+ // once we have set up the core data structures we need another pass to compute
27
+ // the hierarchy of the components/views
28
+ classes.forEach(function(elm:Class, index:int, array:Array):void {
29
+ Router.extractMetadata(elm);
30
+ });
31
+ }
32
+
33
+ public static function extractMetadata(viewClass:Class):void {
34
+ var fqn:String = views[viewClass];
35
+ var view:UIComponent = viewInstances[viewClass];
36
+ var meta:XML = describeType(view);
37
+
38
+ for each (var node:XML in meta..accessor) {
39
+ var declaredBy:String = node.@declaredBy;
40
+ var name:String = node.@name;
41
+ var child:UIComponent;
42
+ // if the accessor was declared in one of your classes and it's a UIComponent...
43
+ if (viewClasses[declaredBy] && view[name] is UIComponent) {
44
+ child = view[name] as UIComponent;
45
+ mapChildToParent(troponMap, view, child);
46
+ }
47
+ }
48
+ }
49
+ }
50
+ }
@@ -0,0 +1,70 @@
1
+ package com.fourD.core
2
+ {
3
+ import flash.utils.getQualifiedClassName;
4
+
5
+ public class RouterUtil
6
+ {
7
+ public function RouterUtil()
8
+ {
9
+ }
10
+
11
+ public static function getTectonName(path:String, action:String):String {
12
+ return path + "." + action;
13
+ }
14
+
15
+ public static function getGenericTectonName(app:*, kanon:String, tropon:String, action:String):String {
16
+ return getQualifiedClassName(app) + "::" + kanon + "::" + tropon + "::" + RouterUtil.upperCaseFirst(action);
17
+ }
18
+
19
+ public static function getClassTroponName(path:String):String {
20
+ // path = Project.mainView.tropon63
21
+ var pattern:RegExp = /\d+$/i; // numbers at the end
22
+ var index:int = path.indexOf(pattern);
23
+ var genericTropon:String = path.slice(0, index); // Project.mainView.tropon
24
+ pattern = /\w+$/i; // last word
25
+ index = path.indexOf(pattern);
26
+ genericTropon = path.slice(index, path.length);
27
+ return RouterUtil.upperCaseFirst(genericTropon);
28
+ }
29
+
30
+ public static function getInstanceTroponName(path:String):String {
31
+ // path = Project.mainView.tropon63
32
+ var pattern:RegExp = /\w+$/i; // numbers and word at the end
33
+ var index:int = path.indexOf(pattern);
34
+ return = path.slice(index, path.length); // Project.mainView.tropon
35
+ }
36
+
37
+ public static function getClassKanonName(path:String):String {
38
+ // path = Project.kanon12.tropon63
39
+ var pattern:RegExp = /\d+\.\w+$/i; // last word, period, and numbers before period
40
+ var index:int = path.indexOf(pattern);
41
+ var genericKanon:String = path.slice(0, index); // Project.kanon
42
+ pattern = /\w+$/i; // last word
43
+ index = path.indexOf(pattern);
44
+ genericKanon = path.slice(index, path.length);
45
+ return RouterUtil.upperCaseFirst(genericKanon);
46
+ }
47
+
48
+
49
+ public static function getInstanceKanonName(path:String):String {
50
+ // path = Project.kanon12.tropon63
51
+ var pattern:RegExp = /\.\w+$/i; // numbers at the end and period
52
+ var index:int = path.indexOf(pattern);\w+\.\w+$
53
+ var kanon:String = path.slice(0, index); // Project.kanon12
54
+ pattern = /\w+$/i; // last word
55
+ index = path.indexOf(pattern);
56
+ return path.slice(index, path.length);
57
+ }
58
+
59
+ public static function lowerCaseFirst(string:String):String {
60
+ return string.charAt(0).toLowerCase() + string.slice(1);
61
+ }
62
+
63
+ /**
64
+ * Upper cases first letter in a string leaving the rest of it alone
65
+ */
66
+ public static function upperCaseFirst(string:String):String {
67
+ return string.charAt(0).toUpperCase() + string.slice(1);
68
+ }
69
+ }
70
+ }
@@ -0,0 +1,42 @@
1
+ /*
2
+ * Copyright 2008-2009 (c) Lance Pollard
3
+ * www.systemsofseven.com/blog
4
+ * www.4ddesignlab.com
5
+ * LanceJPollard@gmail.com
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person
8
+ * obtaining a copy of this software and associated documentation
9
+ * files (the "Software"), to deal in the Software without
10
+ * restriction, including without limitation the rights to use,
11
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the
13
+ * Software is furnished to do so, subject to the following
14
+ * conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26
+ * OTHER DEALINGS IN THE SOFTWARE.
27
+ */
28
+
29
+ package com.fourD.core {
30
+
31
+ [Bindable]
32
+ public class SimpleCondition {
33
+
34
+ public var property:*;
35
+
36
+ public var value:*;
37
+
38
+ // object with the property you're using in your condition
39
+ public var source:*;
40
+
41
+ }
42
+ }
@@ -0,0 +1,70 @@
1
+ /*
2
+ * Copyright 2008-2009 (c) Lance Pollard
3
+ * www.systemsofseven.com/blog
4
+ * www.4ddesignlab.com
5
+ * LanceJPollard@gmail.com
6
+ *
7
+ * Permission is hereby granted, free of charge, to any person
8
+ * obtaining a copy of this software and associated documentation
9
+ * files (the "Software"), to deal in the Software without
10
+ * restriction, including without limitation the rights to use,
11
+ * copy, modify, merge, publish, distribute, sublicense, and/or sell
12
+ * copies of the Software, and to permit persons to whom the
13
+ * Software is furnished to do so, subject to the following
14
+ * conditions:
15
+ *
16
+ * The above copyright notice and this permission notice shall be
17
+ * included in all copies or substantial portions of the Software.
18
+ *
19
+ * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
20
+ * EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
21
+ * OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
22
+ * NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
23
+ * HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
24
+ * WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
25
+ * FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
26
+ * OTHER DEALINGS IN THE SOFTWARE.
27
+ */
28
+
29
+ package com.fourD.core {
30
+
31
+ import flash.events.EventDispatcher;
32
+
33
+ [Bindable]
34
+ public class Tecton extends EventDispatcher {
35
+
36
+ public var actions:Array;
37
+
38
+ public var actionParams:*;
39
+
40
+ public var tropon:*;
41
+
42
+ // "parent", but more appropriately the rules defining it's behavior in a system.
43
+ public var kanon:*;
44
+
45
+ public var tropons:Array;
46
+
47
+ public var name:String;
48
+
49
+ public var actionName:String;
50
+
51
+ public var conditions:Array;
52
+
53
+ public var receptors:Array
54
+
55
+ public var initialize:Array;
56
+
57
+ public var start:Array;
58
+
59
+ public var complete:Array;
60
+
61
+ public var isInitialized:Boolean;
62
+
63
+ public var isRunning:Boolean;
64
+
65
+ public var isComplete:Boolean;
66
+
67
+ public var isActive:Boolean;
68
+
69
+ }
70
+ }
@@ -0,0 +1,234 @@
1
+ /*
2
+ Copyright 2008 Nahuel Foronda/AsFusion
3
+
4
+ Licensed under the Apache License, Version 2.0 (the "License");
5
+ you may not use this file except in compliance with the License. Y
6
+ ou may obtain a copy of the License at
7
+
8
+ http://www.apache.org/licenses/LICENSE-2.0
9
+
10
+ Unless required by applicable law or agreed to in writing, s
11
+ oftware distributed under the License is distributed on an "AS IS" BASIS,
12
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13
+ See the License for the specific language governing permissions and limitations under the License
14
+
15
+ Author: Nahuel Foronda, Principal Architect
16
+ nahuel at asfusion dot com
17
+
18
+ @ignore
19
+ */
20
+ package com.fourD.core
21
+ {
22
+ import com.asfusion.mate.core.mate;
23
+ import com.asfusion.mate.utils.debug.DebuggerUtil;
24
+
25
+ import flash.utils.Dictionary;
26
+
27
+ import mx.messaging.*;
28
+
29
+ use namespace mate;
30
+ /**
31
+ * The <code>MessageHandlers</code> tag allows you to register a set of handlers as a consumer of a Flex Messaging Service.
32
+ * All the tags inside the <code>MessageHandlers</code> tag will be executed in order when a <code>Message</code> matching the
33
+ * criteria is received. This tag accepts the same attributes as the <code>Consumer</code> tag.
34
+ */
35
+ [Event(name="initialize", type="com.fourD.core.Pheron2")]
36
+
37
+ [Event(name="start", type="com.fourD.core.Pheron2")]
38
+
39
+ [Event(name="complete", type="com.fourD.core.Pheron2")]
40
+
41
+ public class Tecton2
42
+
43
+ private var isActiveChanged:Boolean;
44
+ private var isInitializedChanged:Boolean;
45
+ private var isRunningChanged:Boolean;
46
+ private var isCompleteChanged:Boolean;
47
+
48
+ private var activateBeforeChanged:Boolean;
49
+ private var activateDuringChanged:Boolean;
50
+ private var activateAfterChanged:Boolean;
51
+ private var inactivateBeforeChanged:Boolean;
52
+
53
+ private var requiredPherons:Dictionary;
54
+ private var inactivatePherons:Dictionary;
55
+ private var numRequiredPherons:int;
56
+
57
+ // "parent", but more appropriately the rules defining it's behavior in a system.
58
+ public var kanon:*;
59
+
60
+ public var tropons:Array;
61
+
62
+ public var name:String;
63
+
64
+ public var actionName:String;
65
+
66
+ public var conditions:Array;
67
+
68
+ private var _isActive:Boolean; [Bindable]
69
+ public function get isActive():Boolean { return _isActive; }
70
+ public function set isActive(value:Boolean):void {
71
+ _isActive = value;
72
+ isActiveChanged = true;
73
+ invalidateProperties();
74
+ }
75
+
76
+ private var _isInitialized:Boolean; [Bindable]
77
+ public function get isInitialized():Boolean { return _isInitialized; }
78
+ public function set isInitialized(value:Boolean):void {
79
+ _isInitialized = value;
80
+ isInitializedChanged = true;
81
+ invalidateProperties();
82
+ }
83
+
84
+ private var _isRunning:Boolean; [Bindable]
85
+ public function get isRunning():Boolean { return _isRunning; }
86
+ public function set isRunning(value:Boolean):void {
87
+ _isRunning = value;
88
+ isRunningChanged = true;
89
+ invalidateProperties();
90
+ }
91
+
92
+ private var _isComplete:Boolean; [Bindable]
93
+ public function get isComplete():Boolean { return _isComplete; }
94
+ public function set isComplete(value:Boolean):void {
95
+ _isComplete = value;
96
+ isCompletehanged = true;
97
+ invalidateProperties();
98
+ }
99
+
100
+ protected var initializeHandlersChanged:Boolean;
101
+ protected var startHandlersChanged:Boolean;
102
+ protected var completeHandlersChanged:Boolean;
103
+
104
+ private var _activateBefore:Array; [Bindable] // therefore it listens for INITIALIZE events
105
+ public function get activateBefore():Array { return _activateBefore; }
106
+ [ArrayElementType("com.fourD.core.Pheron2")]
107
+ public function set activateBefore(value:Array):void {
108
+ _activateBefore = value;
109
+ activateBeforeChanged = true;
110
+ invalidateProperties();
111
+ }
112
+
113
+ private var _inactivateBefore:Array; [Bindable] // therefore it listens for INITIALIZE events
114
+ public function get inactivateBefore():Array { return _inactivateBefore; }
115
+ [ArrayElementType("com.fourD.core.Pheron2")]
116
+ public function set inactivateBefore(value:Array):void {
117
+ _inactivateBefore = value;
118
+ inactivateBeforeChanged = true;
119
+ invalidateProperties();
120
+ }
121
+
122
+ private var _activateDuring:Array; [Bindable] // therefore it's listening for READY events
123
+ [ArrayElementType("com.fourD.core.Pheron2")]
124
+ public function get activateDuring():Array { return _activateDuring; }
125
+ public function set activateDuring(value:Array):void {
126
+ _activateDuring = value;
127
+ activateDuringChanged = true;
128
+ invalidateProperties();
129
+ }
130
+
131
+ private var _activateAfter:Array; [Bindable] // don't need to do, but it would dispatch COMPLETE to these
132
+ public function get activateAfter():Array { return _activateAfter; }
133
+ [ArrayElementType("com.fourD.core.Tecton2")]
134
+ public function set activateAfter(value:Array):void {
135
+ _activateAfter = value;
136
+ activateAfterChanged = true;
137
+ invalidateProperties();
138
+ }
139
+
140
+ public function Tecton2()
141
+ {
142
+ super();
143
+ }
144
+
145
+ override public function errorString():String
146
+ {
147
+ var str:String = "Destination:"+ destination + ". Error was found in a MessageHandlers list in file "
148
+ + DebuggerUtil.getClassName(document);
149
+ return str;
150
+ }
151
+
152
+ protected function prepare(pheron:Pheron2):void {
153
+ var pheronType:String = pheron.name;
154
+ if (isComplete) {
155
+ if (requiredPherons[pheronType] && pheron.phase == Pheron2.INITIALIZE) {
156
+ isComplete = false;
157
+ isActive = false;
158
+ return;
159
+ }
160
+ }
161
+ if (isActive && isComplete) { return; }
162
+
163
+ delete requiredPherons[pheronType]; // do I even need to do this?
164
+ numRequirePherons --;
165
+ if (numRequiredPherons == 0) {
166
+ run(pheron.tecton);
167
+ dispatchPheron(Pheron2.COMPLETE);
168
+ isComplete = true;
169
+ }
170
+ }
171
+
172
+ public function run(tecton:Tecton):void
173
+ {
174
+ var currentScope:TectonScope = new TectonScope(event,debug, map, inheritedScope);
175
+ currentScope.owner = this;
176
+ currentScope.tecton = pheron.tecton;
177
+ currentScope.tropon = pheron.tecton.tropon;
178
+ currentScope.kanon = pheron.tecton.kanon;
179
+ currentScope.action = pheron.tecton.action;
180
+
181
+ var presenter:* = pheron.tecton.kanon.presenter;
182
+ currentScope.presenter = (presenter) ? presenter : null;
183
+
184
+ isRunning = true;
185
+
186
+ runSequence(currentScope, actions);
187
+ }
188
+
189
+ override protected function commitProperties():void
190
+ {
191
+ var i:int=0; var
192
+ if (isActive && !isInitialized) {
193
+ isInitialized = true;
194
+ numRequiredPherons = 0;
195
+ dispatchPheron(Pheron2.INITIALIZE);
196
+ }
197
+ if (isActive && isInitialized && !isRunning) {
198
+ attachHandlers(before, Pheron2.COMPLETE);
199
+ attachHandlers(during, Pheron2.READY);
200
+ }
201
+ if (isComplete) {
202
+ attachInactivateHandlers(inactivateBefore, Pheron2.INITIALIZE);
203
+ }
204
+ }
205
+
206
+ private function dispatchPheron(phase:String):void {
207
+ var pheron:Pheron2 = new Pheron2(phase);
208
+ pheron.tecton = this;
209
+ dispatcher.dispatchEvent(pheron);
210
+ }
211
+
212
+ private function attachHandlers(tectons:Array, phase:String):void {
213
+ var i:int=0, n:int=tectons.length;
214
+ for (i; i < n; i++) {
215
+ var tecton:Tecton = tectons[i].tecton;
216
+ var pheronType:String = tecton.toString() + phase;
217
+ dispatcher.addEventListener(pheronType, prepare);
218
+ numRequiredPherons ++;
219
+ requiredPherons[pheronType] = numRequiredPherons;
220
+ }
221
+ }
222
+
223
+ private function attachInactivateHandlers(tectons:Array, phase:String):void {
224
+ var i:int=0, n:int=tectons.length;
225
+ for (i; i < n; i++) {
226
+ var tecton:Tecton = tectons[i].tecton;
227
+ var pheronType:String = tecton.toString() + phase;
228
+ dispatcher.addEventListener(pheronType, prepare);
229
+ numRequiredPherons ++;
230
+ inactivatePherons[pheronType] = numRequiredPherons;
231
+ }
232
+ }
233
+ }
234
+ }