emergent-core 0.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/.bnsignore +16 -0
- data/History.txt +4 -0
- data/Manifest.txt +348 -0
- data/README.rdoc +47 -0
- data/Rakefile +39 -0
- data/app_generators/emergent_core/USAGE +5 -0
- data/app_generators/emergent_core/emergent_core_generator.rb +73 -0
- data/app_generators/emergent_core/templates/core/actionscript.properties +16 -0
- data/app_generators/emergent_core/templates/core/actionscriptair.properties +16 -0
- data/app_generators/emergent_core/templates/core/app.yaml.erb +12 -0
- data/app_generators/emergent_core/templates/core/default_tasks.rake +51 -0
- data/app_generators/emergent_core/templates/core/empty.txt +0 -0
- data/app_generators/emergent_core/templates/core/expressInstall.swf +0 -0
- data/app_generators/emergent_core/templates/core/flex.properties +2 -0
- data/app_generators/emergent_core/templates/core/generate.rb +17 -0
- data/app_generators/emergent_core/templates/core/html-template/AC_OETags.js +276 -0
- data/app_generators/emergent_core/templates/core/html-template/history/history.css +6 -0
- data/app_generators/emergent_core/templates/core/html-template/history/history.js +645 -0
- data/app_generators/emergent_core/templates/core/html-template/history/historyFrame.html +29 -0
- data/app_generators/emergent_core/templates/core/html-template/index.template.html +121 -0
- data/app_generators/emergent_core/templates/core/html-template/playerProductInstall.swf +0 -0
- data/app_generators/emergent_core/templates/core/index.html.erb +18 -0
- data/app_generators/emergent_core/templates/core/index.yaml +11 -0
- data/app_generators/emergent_core/templates/core/mainair-app.xml +134 -0
- data/app_generators/emergent_core/templates/core/mainapp-config.xml +21 -0
- data/app_generators/emergent_core/templates/core/mainapp.mxml +106 -0
- data/app_generators/emergent_core/templates/core/project-textmate.erb +52 -0
- data/app_generators/emergent_core/templates/core/project.properties +18 -0
- data/app_generators/emergent_core/templates/core/projectair.properties +24 -0
- data/app_generators/emergent_core/templates/core/swfobject.js +5 -0
- data/bin/emergent +17 -0
- data/lib/emergent_core.rb +49 -0
- data/lib/restfulx/active_foo.rb +194 -0
- data/lib/restfulx/active_record_tasks.rb +81 -0
- data/lib/restfulx/configuration.rb +76 -0
- data/lib/restfulx/datamapper_foo.rb +31 -0
- data/lib/restfulx/rails/recipes.rb +60 -0
- data/lib/restfulx/rails/swf_helper.rb +60 -0
- data/lib/restfulx/tasks.rb +85 -0
- data/lib/restfulx.rb +117 -0
- data/rails_generators/emergent_cms/USAGE +5 -0
- data/rails_generators/emergent_cms/emergent_cms_generator.rb +21 -0
- data/rails_generators/emergent_cms/templates/PagesEditModel.as +114 -0
- data/rails_generators/emergent_cms/templates/PagesEditView.mxml +102 -0
- data/rails_generators/emergent_config/USAGE +5 -0
- data/rails_generators/emergent_config/emergent_config_generator.rb +330 -0
- data/rails_generators/emergent_config/templates/app/controllers/accounts_controller.rb +104 -0
- data/rails_generators/emergent_config/templates/app/controllers/addresses_controller.rb +97 -0
- data/rails_generators/emergent_config/templates/app/controllers/application.rb +26 -0
- data/rails_generators/emergent_config/templates/app/controllers/assets_controller.rb +1 -0
- data/rails_generators/emergent_config/templates/app/controllers/content_assignments_controller.rb +97 -0
- data/rails_generators/emergent_config/templates/app/controllers/contents_controller.rb +114 -0
- data/rails_generators/emergent_config/templates/app/controllers/sessions_controller.rb +72 -0
- data/rails_generators/emergent_config/templates/app/controllers/sites_controller.rb +1 -0
- data/rails_generators/emergent_config/templates/app/controllers/users_controller.rb +97 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/ICommand.as +16 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/Undoable.as +46 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/command/UpdateDocumentCommand.as +73 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/DocumentEvent.as +46 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/NavigationEvent.as +31 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/ResourceEvent.as +27 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/event/UndoEvent.as +36 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AboutUsManager.as +15 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AccountManager.as +31 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/AuthenticationManager.as +76 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/ContentManager.as +92 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/DocumentManager.as +131 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/DocumentsManager.as +156 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/HomeManager.as +18 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/MainManager.as +23 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/PagesManager.as +71 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/ResourceManager.as +195 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/SiteManager.as +25 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/manager/UndoManager.as +143 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/DocumentMap.mxml +123 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/DocumentsMap.mxml +134 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/ManagerPresentationModelMap.mxml +59 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/ObjectMap.mxml +75 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/PresentationModelViewMap.mxml +81 -0
- data/rails_generators/emergent_config/templates/app/flex/application/controllers/map/PresenterViewMap.mxml +67 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/constant/DocumentType.as +52 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/constant/Resource.as +25 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/constant/ResourceAction.as +28 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/constant/ResourceResult.as +8 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Account.as +32 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Address.as +26 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Asset.as +25 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/AssetAssignment.as +25 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Content.as +46 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/ContentAssignment.as +33 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Document.as +131 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/PlainDocument.as +19 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/RichDocument.as +19 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Session.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/Snapshot.as +21 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/domain/User.as +28 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/factory/DocumentFactory.as +61 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/factory/DocumentViewFactory.as +59 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/factory/ResourceFactory.as +28 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AboutUsModel.as +22 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AccountModel.as +68 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/AuthenticationModel.as +44 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ContactUsModel.as +45 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ContentModel.as +70 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/DocumentModel.as +235 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/DocumentsModel.as +169 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/HomeModel.as +23 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/MainModel.as +35 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/PagesModel.as +44 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ProfileModel.as +99 -0
- data/rails_generators/emergent_config/templates/app/flex/application/models/presentation/ResourceModel.as +100 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/about_us/about_us.mxml +105 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/account/account.mxml +97 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/contact_us/contact_us.mxml +65 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/document/document.mxml +71 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/document/documents.mxml +201 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/document/plain_document.mxml +9 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/document/rich_document.mxml +12 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/gallery/gallery.mxml +37 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/home/home.mxml +58 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/home/home_presenter.as +81 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/home/home_troparchy.mxml +71 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/login/login.mxml +50 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/main/main.mxml +131 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/main/main_presenter.as +166 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/main/main_troparchy.mxml +74 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_model.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_presenter.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_bottom_view.mxml +48 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_model.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_presenter.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_left_view.mxml +43 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_model.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_presenter.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_right_view.mxml +47 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_model.as +13 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_presenter.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bar_top_view.mxml +49 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_presenter.as +63 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_troparchy.mxml +63 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/navigation/navigation_bars_view.mxml +59 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages.mxml +44 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages_presenter.as +83 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/pages/pages_troparchy.mxml +62 -0
- data/rails_generators/emergent_config/templates/app/flex/application/views/profile/profile.mxml +73 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/fonts/MyriadPro-Bold.otf +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/fonts/MyriadPro-Regular.otf +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/html/lorem.html +3 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture10.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture11.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture12.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture13.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture14.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture3.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture4.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture5.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture6.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture7.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture8.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/alexgrey/Picture9.png +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_0.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_180.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_270.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_90.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_bottom.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/images/hot_nebula_top.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/itunes7Bg.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/jukebox.css +764 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/jukeboxGfx.swf +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidian.css +734 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidianBg.jpg +0 -0
- data/rails_generators/emergent_config/templates/app/flex/assets/styles/obsidianGfx.swf +0 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/actions/LayoutAction.as +377 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/actions/SimpleLayoutAction.as +210 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/FourDTweenCollection.mxml +50 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/IAnimator.as +39 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/animators/TweenMaxAnimator.as +269 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/cameras/AstroCamera.as +177 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/components/FourDDataGrid.mxml +105 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/components/FourDItemRenderer.mxml +54 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/CenterPerspectiveProjection.as +72 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/ComplexCondition.as +44 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/ConditionsUtil.as +82 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/FourDComponent.as +309 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/InstanceMethodInvoker.as +50 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/InstancePropertyInjector.as +43 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/MethodCaller.as +51 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pathway.as +10 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/PathwayEvent.as +28 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pheron.as +34 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Pheron2.as +41 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/PheronReceptor.as +125 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Properties.as +57 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Router.as +50 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/RouterUtil.as +70 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleCondition.as +42 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleZSortVO.as +1 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/SimpleZSorter.as +1 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Tecton.as +70 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/Tecton2.as +234 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonCache.as +111 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonEvent.as +39 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMap.as +515 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMap2.as +289 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonMapSample.mxml +73 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonReceptor.as +43 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonScope.as +38 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonScopeProperties.as +18 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/core/TectonUtils.as +51 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/events/LayoutActionEvent.as +75 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CarouselLayout.as +85 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CircleLayout.as +102 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/CoverFlowLayout.as +136 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/layouts/FourDLayout.as +272 -0
- data/rails_generators/emergent_config/templates/app/flex/com/fourD/utils/TweenUtil.as +110 -0
- data/rails_generators/emergent_config/templates/app/helpers/accounts_helper.rb +93 -0
- data/rails_generators/emergent_config/templates/app/helpers/application_helper.rb +3 -0
- data/rails_generators/emergent_config/templates/app/models/account.rb +84 -0
- data/rails_generators/emergent_config/templates/app/models/account_mailer.rb +24 -0
- data/rails_generators/emergent_config/templates/app/models/account_observer.rb +17 -0
- data/rails_generators/emergent_config/templates/app/models/address.rb +2 -0
- data/rails_generators/emergent_config/templates/app/models/asset.rb +6 -0
- data/rails_generators/emergent_config/templates/app/models/asset_assignment.rb +4 -0
- data/rails_generators/emergent_config/templates/app/models/category.rb +35 -0
- data/rails_generators/emergent_config/templates/app/models/comment.rb +98 -0
- data/rails_generators/emergent_config/templates/app/models/content.rb +89 -0
- data/rails_generators/emergent_config/templates/app/models/content_assignment.rb +21 -0
- data/rails_generators/emergent_config/templates/app/models/image.rb +3 -0
- data/rails_generators/emergent_config/templates/app/models/post.rb +76 -0
- data/rails_generators/emergent_config/templates/app/models/section.rb +97 -0
- data/rails_generators/emergent_config/templates/app/models/site.rb +1 -0
- data/rails_generators/emergent_config/templates/app/models/tag.rb +1 -0
- data/rails_generators/emergent_config/templates/app/models/user.rb +4 -0
- data/rails_generators/emergent_config/templates/app/views/account_mailer/activation.erb +3 -0
- data/rails_generators/emergent_config/templates/app/views/account_mailer/signup_notification.erb +8 -0
- data/rails_generators/emergent_config/templates/config/Capfile +4 -0
- data/rails_generators/emergent_config/templates/config/README.txt +18 -0
- data/rails_generators/emergent_config/templates/config/deploy.rb +36 -0
- data/rails_generators/emergent_config/templates/config/routes.rb +72 -0
- data/rails_generators/emergent_config/templates/core/actionscript.properties +16 -0
- data/rails_generators/emergent_config/templates/core/actionscriptair.properties +16 -0
- data/rails_generators/emergent_config/templates/core/app.yaml.erb +12 -0
- data/rails_generators/emergent_config/templates/core/default_tasks.rake +51 -0
- data/rails_generators/emergent_config/templates/core/emergent_tasks.rake +42 -0
- data/rails_generators/emergent_config/templates/core/empty.txt +0 -0
- data/rails_generators/emergent_config/templates/core/expressInstall.swf +0 -0
- data/rails_generators/emergent_config/templates/core/flex.properties +2 -0
- data/rails_generators/emergent_config/templates/core/generate.rb +17 -0
- data/rails_generators/emergent_config/templates/core/html-template/AC_OETags.js +276 -0
- data/rails_generators/emergent_config/templates/core/html-template/history/history.css +6 -0
- data/rails_generators/emergent_config/templates/core/html-template/history/history.js +645 -0
- data/rails_generators/emergent_config/templates/core/html-template/history/historyFrame.html +29 -0
- data/rails_generators/emergent_config/templates/core/html-template/index.template.html +121 -0
- data/rails_generators/emergent_config/templates/core/html-template/playerProductInstall.swf +0 -0
- data/rails_generators/emergent_config/templates/core/index.html.erb +18 -0
- data/rails_generators/emergent_config/templates/core/index.yaml +11 -0
- data/rails_generators/emergent_config/templates/core/mainair-app.xml +134 -0
- data/rails_generators/emergent_config/templates/core/mainapp-config.xml +21 -0
- data/rails_generators/emergent_config/templates/core/mainapp.mxml +101 -0
- data/rails_generators/emergent_config/templates/core/project-textmate.erb +52 -0
- data/rails_generators/emergent_config/templates/core/project.properties +18 -0
- data/rails_generators/emergent_config/templates/core/projectair.properties +24 -0
- data/rails_generators/emergent_config/templates/core/restfulx.yml +14 -0
- data/rails_generators/emergent_config/templates/core/restfulx_tasks.rake +6 -0
- data/rails_generators/emergent_config/templates/core/swfobject.js +5 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_accounts.rb +40 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_addresses.rb +18 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_asset_assignments.rb +19 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_assets.rb +20 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_content_assignments.rb +26 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_contents.rb +21 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_sessions.rb +16 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_sites.rb +27 -0
- data/rails_generators/emergent_config/templates/db/migrate/create_users.rb +15 -0
- data/rails_generators/emergent_config/templates/lib/analytics.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/app_controller.rb.erb +26 -0
- data/rails_generators/emergent_config/templates/lib/as3corelib-0.92.1.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/as3crypto-1.3patched.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/as3crypto.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/as3ds-1.04.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/as3httpclientlib-1.0.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/authenticated_system.rb +189 -0
- data/rails_generators/emergent_config/templates/lib/authenticated_test_helper.rb +11 -0
- data/rails_generators/emergent_config/templates/lib/containerEx.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/flare.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/flash_session_hack.rb +27 -0
- data/rails_generators/emergent_config/templates/lib/flex2BrowserManager.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/flexlib.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/fluint.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/mate_0_8_6_enhanced.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/openflux.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/pv3d.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/restfulx.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/site_keys.rb +38 -0
- data/rails_generators/emergent_config/templates/lib/tweenMax.swc +0 -0
- data/rails_generators/emergent_config/templates/lib/urlkitFlex3.swc +0 -0
- data/rails_generators/emergent_config/templates/shell_script +31 -0
- data/rails_generators/emergent_controller/USAGE +5 -0
- data/rails_generators/emergent_controller/emergent_controller_generator.rb +25 -0
- data/rails_generators/emergent_controller/templates/controller.as.erb +37 -0
- data/rails_generators/emergent_core/USAGE +5 -0
- data/rails_generators/emergent_core/emergent_core_generator.rb +157 -0
- data/rails_generators/emergent_iphone/USAGE +5 -0
- data/rails_generators/emergent_iphone/emergent_iphone_generator.rb +27 -0
- data/rails_generators/emergent_scaffold/USAGE +5 -0
- data/rails_generators/emergent_scaffold/emergent_scaffold_generator.rb +157 -0
- data/rails_generators/emergent_scaffold/templates/component.mxml.erb +101 -0
- data/rails_generators/emergent_scaffold/templates/controller.rb.erb +101 -0
- data/rails_generators/emergent_scaffold/templates/edit_index_view.mxml.erb +114 -0
- data/rails_generators/emergent_scaffold/templates/edit_show_view.mxml.erb +84 -0
- data/rails_generators/emergent_scaffold/templates/filter_view.mxml.erb +1 -0
- data/rails_generators/emergent_scaffold/templates/fixtures.yml.erb +128 -0
- data/rails_generators/emergent_scaffold/templates/index_view.mxml.erb +58 -0
- data/rails_generators/emergent_scaffold/templates/item_renderer.mxml.erb +53 -0
- data/rails_generators/emergent_scaffold/templates/manager.as.erb +31 -0
- data/rails_generators/emergent_scaffold/templates/migration.rb.erb +22 -0
- data/rails_generators/emergent_scaffold/templates/model.as.erb +42 -0
- data/rails_generators/emergent_scaffold/templates/model.rb.erb +11 -0
- data/rails_generators/emergent_scaffold/templates/presentation_model.as.erb +33 -0
- data/rails_generators/emergent_scaffold/templates/presenter.as.erb +98 -0
- data/rails_generators/emergent_scaffold/templates/show_view.mxml.erb +50 -0
- data/rails_generators/emergent_scaffold/templates/view_map.mxml.erb +40 -0
- data/rails_generators/emergent_scaffold/templates/views_panel.mxml.erb +64 -0
- data/rails_generators/emergent_styler/USAGE +5 -0
- data/rails_generators/emergent_styler/emergent_styler_generator.rb +21 -0
- data/rails_generators/rx_yaml_scaffold/USAGE +51 -0
- data/rails_generators/rx_yaml_scaffold/rx_yaml_scaffold_generator.rb +49 -0
- data/script/console +10 -0
- data/script/destroy +14 -0
- data/script/generate +14 -0
- data/spec/emergent_core_spec.rb +7 -0
- data/spec/spec_helper.rb +16 -0
- data/tasks/ann.rake +80 -0
- data/tasks/bones.rake +20 -0
- data/tasks/gem.rake +201 -0
- data/tasks/git.rake +40 -0
- data/tasks/manifest.rake +48 -0
- data/tasks/notes.rake +27 -0
- data/tasks/post_load.rake +39 -0
- data/tasks/rdoc.rake +50 -0
- data/tasks/rubyforge.rake +55 -0
- data/tasks/setup.rb +279 -0
- data/tasks/spec.rake +54 -0
- data/tasks/svn.rake +47 -0
- data/tasks/test.rake +40 -0
- data/test/test_emergent_core.rb +0 -0
- data/test/test_emergent_iphone_generator.rb +46 -0
- data/test/test_generator_helper.rb +29 -0
- metadata +437 -0
@@ -0,0 +1,157 @@
|
|
1
|
+
class EmergentCoreGenerator < Rails::Generator::NamedBase
|
2
|
+
include RestfulX::Configuration
|
3
|
+
|
4
|
+
attr_reader :project_name,
|
5
|
+
:flex_project_name,
|
6
|
+
:base_package,
|
7
|
+
:base_folder,
|
8
|
+
:command_controller_name,
|
9
|
+
# Added
|
10
|
+
:model_names,
|
11
|
+
:event_names
|
12
|
+
|
13
|
+
attr_reader :belongs_tos,
|
14
|
+
:has_manies,
|
15
|
+
:has_ones
|
16
|
+
|
17
|
+
attr_reader :controller_name,
|
18
|
+
:controller_class_path,
|
19
|
+
:controller_file_path,
|
20
|
+
:controller_class_nesting,
|
21
|
+
:controller_class_nesting_depth,
|
22
|
+
:controller_class_name,
|
23
|
+
:controller_underscore_name,
|
24
|
+
:controller_singular_name,
|
25
|
+
:controller_plural_name
|
26
|
+
|
27
|
+
alias_method :controller_file_name, :controller_underscore_name
|
28
|
+
alias_method :controller_table_name, :controller_plural_name
|
29
|
+
|
30
|
+
def initialize(runtime_args, runtime_options = {})
|
31
|
+
super
|
32
|
+
@project_name, @flex_project_name, @command_controller_name, @base_package, @base_folder = extract_names
|
33
|
+
@controller_name = @name.pluralize
|
34
|
+
|
35
|
+
base_name, @controller_class_path, @controller_file_path, @controller_class_nesting,
|
36
|
+
@controller_class_nesting_depth = extract_modules(@controller_name)
|
37
|
+
@controller_class_name_without_nesting, @controller_underscore_name, @controller_plural_name = inflect_names(base_name)
|
38
|
+
|
39
|
+
@controller_singular_name=base_name.singularize
|
40
|
+
if @controller_class_nesting.empty?
|
41
|
+
@controller_class_name = @controller_class_name_without_nesting
|
42
|
+
else
|
43
|
+
@controller_class_name = "#{@controller_class_nesting}::#{@controller_class_name_without_nesting}"
|
44
|
+
end
|
45
|
+
extract_relationships
|
46
|
+
end
|
47
|
+
|
48
|
+
def manifest
|
49
|
+
record do |m|
|
50
|
+
m.dependency 'scaffold', [name] + @args, :skip_migration => true, :collision => :skip unless options[:flex_only]
|
51
|
+
|
52
|
+
# Create Flex AS3 Model...
|
53
|
+
m.template 'ruboss_scaffold/model.as.erb',
|
54
|
+
File.join("app", "flex", base_folder, "models/domain", "#{@class_name}.as"),
|
55
|
+
:assigns => { :resource_controller_name => "#{file_name.pluralize}" }
|
56
|
+
|
57
|
+
# Create PresentationModel which presents the Model to the View...
|
58
|
+
m.template 'ruboss_scaffold/presentation_model.as.erb',
|
59
|
+
File.join("app", "flex", base_folder, "models/presentation", "#{@class_name.pluralize}Model.as")
|
60
|
+
|
61
|
+
# Create your view folder to hold the 5+ view classes per resource
|
62
|
+
m.directory File.join('app/flex', base_package, "views/#{@class_name.pluralize.dcfirst}")
|
63
|
+
|
64
|
+
# Create resource container View (acts as a component container)...
|
65
|
+
m.template 'ruboss_scaffold/views_panel.mxml.erb',
|
66
|
+
File.join("app", "flex", base_folder, "views/#{@class_name.pluralize.dcfirst}", "#{@class_name.pluralize}View.mxml")
|
67
|
+
|
68
|
+
# Create IndexView
|
69
|
+
m.template 'ruboss_scaffold/index_view.mxml.erb',
|
70
|
+
File.join("app", "flex", base_folder, "views/#{@class_name.pluralize.dcfirst}", "#{@class_name.pluralize}IndexView.mxml")
|
71
|
+
|
72
|
+
# Create EditIndexView (multi-resource edit panel)
|
73
|
+
m.template 'ruboss_scaffold/edit_index_view.mxml.erb',
|
74
|
+
File.join("app", "flex", base_folder, "views/#{@class_name.pluralize.dcfirst}", "#{@class_name.pluralize}EditIndexView.mxml")
|
75
|
+
|
76
|
+
# Create ItemRenderer (aka TileView).... Used for lists
|
77
|
+
m.template 'ruboss_scaffold/item_renderer.mxml.erb',
|
78
|
+
File.join("app", "flex", base_folder, "views/#{@class_name.pluralize.dcfirst}", "#{@class_name}ItemRenderer.mxml")
|
79
|
+
|
80
|
+
# Create ViewPresenter to hold all view logic
|
81
|
+
m.template 'ruboss_scaffold/presenter.as.erb', File.join('app/flex', base_folder,
|
82
|
+
"views/#{@class_name.pluralize.dcfirst}", "#{@class_name.pluralize}Presenter.as")
|
83
|
+
|
84
|
+
# Create Manager to hold all model logic
|
85
|
+
m.template 'ruboss_scaffold/manager.as.erb', File.join('app/flex', base_folder,
|
86
|
+
"controllers/manager", "#{@class_name}Manager.as")
|
87
|
+
|
88
|
+
# Create View event map
|
89
|
+
m.template 'ruboss_scaffold/view_map.mxml.erb', File.join('app/flex', base_folder,
|
90
|
+
"controllers/map/view", "#{@class_name.pluralize}NavigationEventMap.mxml")
|
91
|
+
|
92
|
+
# Create Ruby Controller...
|
93
|
+
m.template 'ruboss_scaffold/controller.rb.erb', File.join("app/controllers", controller_class_path,
|
94
|
+
"#{controller_underscore_name}_controller.rb"), :collision => :force unless options[:flex_only]
|
95
|
+
|
96
|
+
# Create a new generated ActiveRecord model based on the Ruboss templates.
|
97
|
+
m.template 'ruboss_scaffold/model.rb.erb', File.join("app", "models", "#{file_name}.rb"),
|
98
|
+
:collision => :force unless options[:flex_only]
|
99
|
+
|
100
|
+
unless options[:skip_fixture]
|
101
|
+
m.template 'fixtures.yml.erb', File.join("test", "fixtures", "#{table_name}.yml"),
|
102
|
+
:collision => :force unless options[:flex_only]
|
103
|
+
end
|
104
|
+
|
105
|
+
unless options[:skip_migration]
|
106
|
+
m.directory 'schema/migration'
|
107
|
+
m.migration_template 'migration.rb.erb', 'db/migrate', :assigns => {
|
108
|
+
:migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}"
|
109
|
+
}, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}" unless options[:flex_only]
|
110
|
+
end
|
111
|
+
|
112
|
+
m.dependency 'rx_controller', [name] + @args, :collision => :force
|
113
|
+
end
|
114
|
+
|
115
|
+
protected
|
116
|
+
def extract_relationships
|
117
|
+
@belongs_tos = []
|
118
|
+
@has_ones = []
|
119
|
+
@has_manies = []
|
120
|
+
# Figure out has_one, has_many and belongs_to based on args
|
121
|
+
@args.each do |arg|
|
122
|
+
if arg =~ /^has_one:/
|
123
|
+
# arg = "has_one:arg1,arg2", so all the has_one are together
|
124
|
+
@has_ones = arg.split(':')[1].split(',')
|
125
|
+
elsif arg =~ /^has_many:/
|
126
|
+
# arg = "has_many:arg1,arg2", so all the has_many are together
|
127
|
+
@has_manies = arg.split(":")[1].split(",")
|
128
|
+
elsif arg =~ /^belongs_to:/ # belongs_to:arg1,arg2
|
129
|
+
@belongs_tos = arg.split(":")[1].split(',')
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
# Remove the has_one and has_many arguments since they are
|
134
|
+
# not for consumption by the scaffold generator, and since
|
135
|
+
# we have already used them to set the @belongs_tos, @has_ones and
|
136
|
+
# @has_manies.
|
137
|
+
@args.delete_if { |elt| elt =~ /^(has_one|has_many|belongs_to):/ }
|
138
|
+
end
|
139
|
+
|
140
|
+
def add_options!(opt)
|
141
|
+
opt.separator ''
|
142
|
+
opt.separator 'Options:'
|
143
|
+
opt.on("--flex-only", "Scaffold Flex code only",
|
144
|
+
"Default: false") { |v| options[:flex_only] = v}
|
145
|
+
end
|
146
|
+
|
147
|
+
def model_names
|
148
|
+
@model_names = []
|
149
|
+
if File.exists?("app/flex/#{base_folder}/models/domain")
|
150
|
+
@model_names = list_as_files("app/flex/#{base_folder}/models/domain")
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
def list_as_files(dir_name)
|
155
|
+
Dir.entries(dir_name).grep(/\.as$/).map { |name| name.sub(/\.as$/, "") }
|
156
|
+
end
|
157
|
+
end
|
@@ -0,0 +1,27 @@
|
|
1
|
+
class EmergentIphoneGenerator < Rails::Generator::NamedBase
|
2
|
+
def manifest
|
3
|
+
record do |m|
|
4
|
+
# Ensure appropriate folder(s) exists
|
5
|
+
m.directory 'some_folder'
|
6
|
+
if options[:iphone]
|
7
|
+
puts 'Installing Tank-Engine, THE Rails-iPhone Framework...'
|
8
|
+
puts 'Afterwards, install iPhoney, the Mac-only iPhone emulator from here:'
|
9
|
+
puts 'http://marketcircle.com/iphoney/'
|
10
|
+
system('ruby script/plugin install git://github.com/noelrappin/tank-engine.git')
|
11
|
+
system('rake tank_engine:install')
|
12
|
+
end
|
13
|
+
# Create stubs
|
14
|
+
# m.template "template.rb", "some_file_after_erb.rb"
|
15
|
+
# m.file "file", "some_file_copied"
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
protected
|
20
|
+
def banner
|
21
|
+
<<-EOS
|
22
|
+
Creates a ...
|
23
|
+
|
24
|
+
USAGE: #{$0} #{spec.name} name
|
25
|
+
EOS
|
26
|
+
end
|
27
|
+
end
|
@@ -0,0 +1,157 @@
|
|
1
|
+
class EmergentScaffoldGenerator < Rails::Generator::NamedBase
|
2
|
+
include RestfulX::Configuration
|
3
|
+
|
4
|
+
attr_reader :project_name,
|
5
|
+
:flex_project_name,
|
6
|
+
:base_package,
|
7
|
+
:base_folder,
|
8
|
+
:command_controller_name,
|
9
|
+
# Added
|
10
|
+
:model_names,
|
11
|
+
:event_names
|
12
|
+
|
13
|
+
attr_reader :belongs_tos,
|
14
|
+
:has_manies,
|
15
|
+
:has_ones
|
16
|
+
|
17
|
+
attr_reader :controller_name,
|
18
|
+
:controller_class_path,
|
19
|
+
:controller_file_path,
|
20
|
+
:controller_class_nesting,
|
21
|
+
:controller_class_nesting_depth,
|
22
|
+
:controller_class_name,
|
23
|
+
:controller_underscore_name,
|
24
|
+
:controller_singular_name,
|
25
|
+
:controller_plural_name
|
26
|
+
|
27
|
+
alias_method :controller_file_name, :controller_underscore_name
|
28
|
+
alias_method :controller_table_name, :controller_plural_name
|
29
|
+
|
30
|
+
def initialize(runtime_args, runtime_options = {})
|
31
|
+
super
|
32
|
+
@project_name, @flex_project_name, @command_controller_name, @base_package, @base_folder = extract_names
|
33
|
+
@controller_name = @name.pluralize
|
34
|
+
|
35
|
+
base_name, @controller_class_path, @controller_file_path, @controller_class_nesting,
|
36
|
+
@controller_class_nesting_depth = extract_modules(@controller_name)
|
37
|
+
@controller_class_name_without_nesting, @controller_underscore_name, @controller_plural_name = inflect_names(base_name)
|
38
|
+
|
39
|
+
@controller_singular_name=base_name.singularize
|
40
|
+
if @controller_class_nesting.empty?
|
41
|
+
@controller_class_name = @controller_class_name_without_nesting
|
42
|
+
else
|
43
|
+
@controller_class_name = "#{@controller_class_nesting}::#{@controller_class_name_without_nesting}"
|
44
|
+
end
|
45
|
+
extract_relationships
|
46
|
+
end
|
47
|
+
|
48
|
+
def manifest
|
49
|
+
record do |m|
|
50
|
+
m.dependency 'scaffold', [name] + @args, :skip_migration => true, :collision => :skip unless options[:flex_only]
|
51
|
+
|
52
|
+
# Create Flex AS3 Model...
|
53
|
+
m.template 'ruboss_scaffold/model.as.erb',
|
54
|
+
File.join("app", "flex", base_folder, "models/domain", "#{@class_name}.as"),
|
55
|
+
:assigns => { :resource_controller_name => "#{file_name.pluralize}" }
|
56
|
+
|
57
|
+
# Create PresentationModel which presents the Model to the View...
|
58
|
+
m.template 'ruboss_scaffold/presentation_model.as.erb',
|
59
|
+
File.join("app", "flex", base_folder, "models/presentation", "#{@class_name.pluralize}Model.as")
|
60
|
+
|
61
|
+
# Create your view folder to hold the 5+ view classes per resource
|
62
|
+
m.directory File.join('app/flex', base_package, "views/#{@class_name.pluralize.dcfirst}")
|
63
|
+
|
64
|
+
# Create resource container View (acts as a component container)...
|
65
|
+
m.template 'ruboss_scaffold/views_panel.mxml.erb',
|
66
|
+
File.join("app", "flex", base_folder, "views/#{@class_name.pluralize.dcfirst}", "#{@class_name.pluralize}View.mxml")
|
67
|
+
|
68
|
+
# Create IndexView
|
69
|
+
m.template 'ruboss_scaffold/index_view.mxml.erb',
|
70
|
+
File.join("app", "flex", base_folder, "views/#{@class_name.pluralize.dcfirst}", "#{@class_name.pluralize}IndexView.mxml")
|
71
|
+
|
72
|
+
# Create EditIndexView (multi-resource edit panel)
|
73
|
+
m.template 'ruboss_scaffold/edit_index_view.mxml.erb',
|
74
|
+
File.join("app", "flex", base_folder, "views/#{@class_name.pluralize.dcfirst}", "#{@class_name.pluralize}EditIndexView.mxml")
|
75
|
+
|
76
|
+
# Create ItemRenderer (aka TileView).... Used for lists
|
77
|
+
m.template 'ruboss_scaffold/item_renderer.mxml.erb',
|
78
|
+
File.join("app", "flex", base_folder, "views/#{@class_name.pluralize.dcfirst}", "#{@class_name}ItemRenderer.mxml")
|
79
|
+
|
80
|
+
# Create ViewPresenter to hold all view logic
|
81
|
+
m.template 'ruboss_scaffold/presenter.as.erb', File.join('app/flex', base_folder,
|
82
|
+
"views/#{@class_name.pluralize.dcfirst}", "#{@class_name.pluralize}Presenter.as")
|
83
|
+
|
84
|
+
# Create Manager to hold all model logic
|
85
|
+
m.template 'ruboss_scaffold/manager.as.erb', File.join('app/flex', base_folder,
|
86
|
+
"controllers/manager", "#{@class_name}Manager.as")
|
87
|
+
|
88
|
+
# Create View event map
|
89
|
+
m.template 'ruboss_scaffold/view_map.mxml.erb', File.join('app/flex', base_folder,
|
90
|
+
"controllers/map/view", "#{@class_name.pluralize}NavigationEventMap.mxml")
|
91
|
+
|
92
|
+
# Create Ruby Controller...
|
93
|
+
m.template 'ruboss_scaffold/controller.rb.erb', File.join("app/controllers", controller_class_path,
|
94
|
+
"#{controller_underscore_name}_controller.rb"), :collision => :force unless options[:flex_only]
|
95
|
+
|
96
|
+
# Create a new generated ActiveRecord model based on the Ruboss templates.
|
97
|
+
m.template 'ruboss_scaffold/model.rb.erb', File.join("app", "models", "#{file_name}.rb"),
|
98
|
+
:collision => :force unless options[:flex_only]
|
99
|
+
|
100
|
+
unless options[:skip_fixture]
|
101
|
+
m.template 'fixtures.yml.erb', File.join("test", "fixtures", "#{table_name}.yml"),
|
102
|
+
:collision => :force unless options[:flex_only]
|
103
|
+
end
|
104
|
+
|
105
|
+
unless options[:skip_migration]
|
106
|
+
m.directory 'schema/migration'
|
107
|
+
m.migration_template 'migration.rb.erb', 'db/migrate', :assigns => {
|
108
|
+
:migration_name => "Create#{class_name.pluralize.gsub(/::/, '')}"
|
109
|
+
}, :migration_file_name => "create_#{file_path.gsub(/\//, '_').pluralize}" unless options[:flex_only]
|
110
|
+
end
|
111
|
+
|
112
|
+
m.dependency 'rx_controller', [name] + @args, :collision => :force
|
113
|
+
end
|
114
|
+
|
115
|
+
protected
|
116
|
+
def extract_relationships
|
117
|
+
@belongs_tos = []
|
118
|
+
@has_ones = []
|
119
|
+
@has_manies = []
|
120
|
+
# Figure out has_one, has_many and belongs_to based on args
|
121
|
+
@args.each do |arg|
|
122
|
+
if arg =~ /^has_one:/
|
123
|
+
# arg = "has_one:arg1,arg2", so all the has_one are together
|
124
|
+
@has_ones = arg.split(':')[1].split(',')
|
125
|
+
elsif arg =~ /^has_many:/
|
126
|
+
# arg = "has_many:arg1,arg2", so all the has_many are together
|
127
|
+
@has_manies = arg.split(":")[1].split(",")
|
128
|
+
elsif arg =~ /^belongs_to:/ # belongs_to:arg1,arg2
|
129
|
+
@belongs_tos = arg.split(":")[1].split(',')
|
130
|
+
end
|
131
|
+
end
|
132
|
+
|
133
|
+
# Remove the has_one and has_many arguments since they are
|
134
|
+
# not for consumption by the scaffold generator, and since
|
135
|
+
# we have already used them to set the @belongs_tos, @has_ones and
|
136
|
+
# @has_manies.
|
137
|
+
@args.delete_if { |elt| elt =~ /^(has_one|has_many|belongs_to):/ }
|
138
|
+
end
|
139
|
+
|
140
|
+
def add_options!(opt)
|
141
|
+
opt.separator ''
|
142
|
+
opt.separator 'Options:'
|
143
|
+
opt.on("--flex-only", "Scaffold Flex code only",
|
144
|
+
"Default: false") { |v| options[:flex_only] = v}
|
145
|
+
end
|
146
|
+
|
147
|
+
def model_names
|
148
|
+
@model_names = []
|
149
|
+
if File.exists?("app/flex/#{base_folder}/models/domain")
|
150
|
+
@model_names = list_as_files("app/flex/#{base_folder}/models/domain")
|
151
|
+
end
|
152
|
+
end
|
153
|
+
|
154
|
+
def list_as_files(dir_name)
|
155
|
+
Dir.entries(dir_name).grep(/\.as$/).map { |name| name.sub(/\.as$/, "") }
|
156
|
+
end
|
157
|
+
end
|
@@ -0,0 +1,101 @@
|
|
1
|
+
<?xml version="1.0" encoding="utf-8"?>
|
2
|
+
<mx:HBox xmlns:mx="http://www.adobe.com/2006/mxml" width="100%" label="<%= class_name %>"
|
3
|
+
xmlns:rcomponents="org.restfulx.components.*"
|
4
|
+
creationComplete="creationComplete(event)">
|
5
|
+
<mx:Script><![CDATA[
|
6
|
+
import org.restfulx.Rx;
|
7
|
+
|
8
|
+
<% for model in belongs_tos -%>
|
9
|
+
import <%= base_package %>.models.<%= model.camelcase %>;
|
10
|
+
<% end -%>
|
11
|
+
import <%= base_package %>.models.presentation.<%= class_name.pluralize %>Model;
|
12
|
+
<% for attribute in attributes -%>
|
13
|
+
<% if attribute.model_type -%>
|
14
|
+
import <%= base_package %>.models.<%= attribute.flex_name.capitalize_without_downcasing %>;
|
15
|
+
<% end -%>
|
16
|
+
<% end -%>
|
17
|
+
import <%= base_package %>.views.component.<%= class_name %>Presenter;
|
18
|
+
|
19
|
+
/** This is the presentation model object for this view, it is injected by the application controller when view is created. */
|
20
|
+
[Bindable]
|
21
|
+
public var model:<%= class_name.pluralize %>Model;
|
22
|
+
|
23
|
+
private var <%= class_name.pluralize.dcfirst %>Presenter:<%= class_name.pluralize %>Presenter();
|
24
|
+
|
25
|
+
private function creationComplete(event:Event):void
|
26
|
+
{
|
27
|
+
model = new <%= class_name.pluralize %>Model;
|
28
|
+
<%= class_name.pluralize.dcfirst %>Presenter = new <%= class_name.pluralize %>Presenter(this);
|
29
|
+
}
|
30
|
+
|
31
|
+
]]></mx:Script>
|
32
|
+
<mx:HBox id="<%= class_name.dcfirst %>Admin" width="100%" height="100%">
|
33
|
+
<mx:Panel id="edit<%= class_name %>Panel" title="Edit <%= class_name %>" width="450" height="100%">
|
34
|
+
<mx:Form paddingTop="40" width="100%" height="100%"><% for attribute in attributes -%><% unless attribute.name == "with_user" %>
|
35
|
+
<mx:FormItem label="<%= attribute.flex_name.capitalize_without_downcasing %>" width="100%">
|
36
|
+
<% if attribute.type == :boolean -%>
|
37
|
+
<mx:CheckBox id="<%= attribute.flex_name %>CheckBox" selected="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"/>
|
38
|
+
<% elsif attribute.type == :string -%>
|
39
|
+
<mx:TextInput id="<%= attribute.flex_name %>TextInput" width="100%" text="{model.resource.<%= attribute.flex_name %>}
|
40
|
+
change="model.resource.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextInput.text"/>
|
41
|
+
<% elsif attribute.type == :text -%>
|
42
|
+
<mx:TextArea id="<%= attribute.flex_name %>TextArea" width="100%" height="200" text="{model.resource.<%= attribute.flex_name %>}"
|
43
|
+
change="model.resource.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextInput.text"/>
|
44
|
+
<% elsif attribute.type == :datetime || attribute.type == :time -%>
|
45
|
+
<rcomponents:DateTimeTextInput id="<%= attribute.flex_name %>DateTimeTextInput" width="200" date="{model.resource.<%= attribute.flex_name %>}"/>
|
46
|
+
<% elsif attribute.type == :date -%>
|
47
|
+
<mx:DateField id="<%= attribute.flex_name %>DateField" selectedDate="{model.resource.<%= attribute.flex_name %>}"/>
|
48
|
+
<% else -%>
|
49
|
+
<mx:TextInput id="<%= attribute.flex_name %>TextInput" width="100%" text="{_<%= class_name.dcfirst %>.<%= attribute.flex_name %>}"
|
50
|
+
change="model.<%= class_name.dcfirst %>.<%= attribute.flex_name %> = <%= attribute.flex_name %>TextInput.text"/>
|
51
|
+
<% end -%>
|
52
|
+
</mx:FormItem>
|
53
|
+
<% end -%>
|
54
|
+
<% end -%>
|
55
|
+
<% for model in belongs_tos -%>
|
56
|
+
<mx:FormItem label="<%= model.camelcase %>" width="100%">
|
57
|
+
<mx:ComboBox id="<%= model.camelcase(:lower) %>ComboBox" width="200"
|
58
|
+
labelField="{<%= model.camelcase %>.LABEL}"
|
59
|
+
dataProvider="{Rx.models.index(<%= model.camelcase %>)}" prompt="<%= model.camelcase %> ..."
|
60
|
+
selectedItem="{_<%= class_name.dcfirst %>.<%= model.camelcase(:lower) %>}"
|
61
|
+
enabled="{model.openSelectorEnabled}"/>
|
62
|
+
</mx:FormItem>
|
63
|
+
<% end -%>
|
64
|
+
</mx:Form>
|
65
|
+
<mx:ControlBar id="crudBar" width="100%">
|
66
|
+
<mx:Button id="saveButton" label="Save <%= class_name %>" width="33%" height="30"/>
|
67
|
+
<mx:Button id="updateButton" label="Update <%= class_name %>" width="33%" height="30"/>
|
68
|
+
<mx:Button id="destroyButton" label="Delete <%= class_name %>" width="33%" height="30"/>
|
69
|
+
</mx:ControlBar>
|
70
|
+
</mx:Panel>
|
71
|
+
<mx:Panel id="<%= class_name.dcfirst %>Panel"
|
72
|
+
width="80%" height="100%">
|
73
|
+
<mx:DataGrid id="<%= class_name.dcfirst %>DataGrid"
|
74
|
+
height="100%"
|
75
|
+
width="800"
|
76
|
+
horizontalScrollPolicy="on"
|
77
|
+
dragEnabled="true"
|
78
|
+
dragMoveEnabled="true"
|
79
|
+
dropEnabled="true"
|
80
|
+
dataProvider="{Rx.models.index(<%= class_name %>)}">
|
81
|
+
<mx:columns>
|
82
|
+
<% for attribute in attributes -%><% unless attribute.name == "with_user" %><% if attribute.type == "boolean" -%>
|
83
|
+
<mx:DataGridColumn editable="false" width="80" minWidth="80"
|
84
|
+
headerText="<%= attribute.flex_name.capitalize_without_downcasing %>"
|
85
|
+
dataField="<%= attribute.flex_name %>">
|
86
|
+
</mx:DataGridColumn>
|
87
|
+
<% elsif attribute.model_type -%>
|
88
|
+
<mx:DataGridColumn editable="false" sortable="false"
|
89
|
+
width="150" dataField="<%= attribute.flex_name %>"
|
90
|
+
headerText="<%= attribute.flex_name.capitalize_without_downcasing %>">
|
91
|
+
</mx:DataGridColumn>
|
92
|
+
<% else -%>
|
93
|
+
<mx:DataGridColumn dataField="<%= attribute.flex_name %>" headerText="<%= attribute.name.capitalize_without_downcasing %>"
|
94
|
+
width="150" minWidth="100"/>
|
95
|
+
<% end -%><% end -%>
|
96
|
+
<% end -%>
|
97
|
+
</mx:columns>
|
98
|
+
</mx:DataGrid>
|
99
|
+
</mx:Panel>
|
100
|
+
</mx:HBox>
|
101
|
+
</mx:HBox>
|
@@ -0,0 +1,101 @@
|
|
1
|
+
class <%= controller_class_name %>Controller < ApplicationController
|
2
|
+
|
3
|
+
# GET /<%= table_name %>
|
4
|
+
# GET /<%= table_name %>.xml
|
5
|
+
# GET /<%= table_name %>.fxml
|
6
|
+
def index
|
7
|
+
@<%= table_name %> = <%= class_name %>.find(:all)
|
8
|
+
|
9
|
+
respond_to do |format|
|
10
|
+
format.html # index.html.erb
|
11
|
+
format.xml { render :xml => @<%= table_name %> }
|
12
|
+
format.fxml { render :fxml => @<%= table_name %> }
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
# GET /<%= table_name %>/1
|
17
|
+
# GET /<%= table_name %>/1.xml
|
18
|
+
# GET /<%= table_name %>/1.fxml
|
19
|
+
def show
|
20
|
+
@<%= file_name %> = <%= class_name %>.find(params[:id])
|
21
|
+
|
22
|
+
respond_to do |format|
|
23
|
+
format.html # show.html.erb
|
24
|
+
format.xml { render :xml => @<%= file_name %> }
|
25
|
+
format.fxml { render :fxml => @<%= file_name %> }
|
26
|
+
end
|
27
|
+
end
|
28
|
+
|
29
|
+
# GET /<%= table_name %>/new
|
30
|
+
# GET /<%= table_name %>/new.xml
|
31
|
+
def new
|
32
|
+
@<%= file_name %> = <%= class_name %>.new
|
33
|
+
|
34
|
+
respond_to do |format|
|
35
|
+
format.html # new.html.erb
|
36
|
+
format.xml { render :xml => @<%= file_name %> }
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
# GET /<%= table_name %>/1/edit
|
41
|
+
def edit
|
42
|
+
@<%= file_name %> = <%= class_name %>.find(params[:id])
|
43
|
+
|
44
|
+
rescue ActiveRecord::RecordNotFound => e
|
45
|
+
prevent_access(e)
|
46
|
+
end
|
47
|
+
|
48
|
+
# POST /<%= table_name %>
|
49
|
+
# POST /<%= table_name %>.xml
|
50
|
+
# POST /<%= table_name %>.fxml
|
51
|
+
def create
|
52
|
+
@<%= file_name %> = <%= class_name %>.new(params[:<%= file_name %>])
|
53
|
+
|
54
|
+
respond_to do |format|
|
55
|
+
if @<%= file_name %>.save
|
56
|
+
flash[:notice] = '<%= class_name %> was successfully created.'
|
57
|
+
format.html { redirect_to(@<%= file_name %>) }
|
58
|
+
format.xml { render :xml => @<%= file_name %>, :status => :created, :location => @<%= file_name %> }
|
59
|
+
format.fxml { render :fxml => @<%= file_name %> }
|
60
|
+
else
|
61
|
+
format.html { render :action => "new" }
|
62
|
+
format.xml { render :xml => @<%= file_name %>.errors, :status => :unprocessable_entity }
|
63
|
+
format.fxml { render :fxml => @<%= file_name %>.errors }
|
64
|
+
end
|
65
|
+
end
|
66
|
+
end
|
67
|
+
|
68
|
+
# PUT /<%= table_name %>/1
|
69
|
+
# PUT /<%= table_name %>/1.xml
|
70
|
+
# PUT /<%= table_name %>/1.fxml
|
71
|
+
def update
|
72
|
+
@<%= file_name %> = <%= class_name %>.find(params[:id])
|
73
|
+
|
74
|
+
respond_to do |format|
|
75
|
+
if @<%= file_name %>.update_attributes(params[:<%= file_name %>])
|
76
|
+
flash[:notice] = '<%= class_name %> was successfully updated.'
|
77
|
+
format.html { redirect_to(@<%= file_name %>) }
|
78
|
+
format.xml { head :ok }
|
79
|
+
format.fxml { render :fxml => @<%= file_name %> }
|
80
|
+
else
|
81
|
+
format.html { render :action => "edit" }
|
82
|
+
format.xml { render :xml => @<%= file_name %>.errors, :status => :unprocessable_entity }
|
83
|
+
format.fxml { render :fxml => @<%= file_name %>.errors }
|
84
|
+
end
|
85
|
+
end
|
86
|
+
end
|
87
|
+
|
88
|
+
# DELETE /<%= table_name %>/1
|
89
|
+
# DELETE /<%= table_name %>/1.xml
|
90
|
+
# DELETE /<%= table_name %>/1.fxml
|
91
|
+
def destroy
|
92
|
+
@<%= file_name %> = <%= class_name %>.find(params[:id])
|
93
|
+
@<%= file_name %>.destroy
|
94
|
+
|
95
|
+
respond_to do |format|
|
96
|
+
format.html { redirect_to(<%= table_name %>_url) }
|
97
|
+
format.xml { head :ok }
|
98
|
+
format.fxml { render :fxml => @<%= file_name %> }
|
99
|
+
end
|
100
|
+
end
|
101
|
+
end
|