fanforce-plugin-factory 0.41.0 → 1.6.0.rc1
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.
- data/.gitignore +1 -0
- data/.ruby-version +1 -0
- data/.yardopts +5 -0
- data/.yardopts.rb +1 -0
- data/Gemfile +9 -0
- data/README.md +40 -75
- data/Rakefile +61 -4
- data/fanforce-plugin-factory.gemspec +21 -21
- data/lib/fanforce/plugin_factory.rb +16 -58
- data/lib/fanforce/plugin_factory/Rakefile +51 -0
- data/lib/fanforce/plugin_factory/Routes.rb +33 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/_bootstrap.scss +2 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/_common.scss +1 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/_directives.scss +7 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/_font-awesome.scss +1 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/_ui-select.scss +3 -0
- data/lib/fanforce/plugin_factory/{assets/lib/common → asset_framework/plugin_factory/bootstrap}/_bootstrap-overrides.scss +2 -0
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/bootstrap/css → asset_framework/plugin_factory/bootstrap}/bootstrap.css +2 -2
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/bootstrap/js → asset_framework/plugin_factory/bootstrap}/bootstrap.js +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/bootstrap/bootstrap.min.css +7 -0
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/bootstrap/js → asset_framework/plugin_factory/bootstrap}/bootstrap.min.js +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/bootstrap/glyphicons-halflings-regular.eot +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/bootstrap/glyphicons-halflings-regular.svg +229 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/bootstrap/glyphicons-halflings-regular.ttf +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/bootstrap/glyphicons-halflings-regular.woff +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib → asset_framework/plugin_factory}/common/_mixins.scss +2 -1
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/directives.coffee +1 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/directives/error/_error.scss +6 -0
- data/lib/fanforce/plugin_factory/{assets/lib/common/module-error → asset_framework/plugin_factory/directives/error}/arrow-left.png +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib/common/module-error → asset_framework/plugin_factory/directives/error}/icon-error.png +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/directives/initiative-footer/_initiative-footer.coffee +16 -0
- data/lib/fanforce/plugin_factory/{assets/lib/common/_module-add-initiative-footer.scss → asset_framework/plugin_factory/directives/initiative-footer/_initiative-footer.scss} +4 -1
- data/lib/fanforce/plugin_factory/{assets/lib/common/_module-initiative-searcher.scss → asset_framework/plugin_factory/directives/initiative-searcher/_initiative-searcher.scss} +14 -13
- data/lib/fanforce/plugin_factory/{assets/lib/common/module-initiative-searcher → asset_framework/plugin_factory/directives/initiative-searcher}/icon-search.png +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib/common/module-initiative-searcher → asset_framework/plugin_factory/directives/initiative-searcher}/spinner.gif +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib/common/module-initiative-searcher → asset_framework/plugin_factory/directives/initiative-searcher}/sprite-arrows.png +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/directives/loading/_loading.coffee +4 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/directives/loading/_loading.scss +4 -0
- data/lib/fanforce/plugin_factory/{assets/js/add_source_popup.js → asset_framework/plugin_factory/directives/saving-to-server/_saving-to-server.coffee} +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/directives/saving-to-server/_saving-to-server.scss +6 -0
- data/lib/fanforce/plugin_factory/{assets/lib/common/module-saving-initiative → asset_framework/plugin_factory/directives/saving-to-server}/spinner.gif +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/directives/start-arrow/_start-arrow.coffee +8 -0
- data/lib/fanforce/plugin_factory/{assets/lib/common/_module-start-here.scss → asset_framework/plugin_factory/directives/start-arrow/_start-arrow.scss} +5 -4
- data/lib/fanforce/plugin_factory/{assets/lib/common/module-start-here → asset_framework/plugin_factory/directives/start-arrow}/arrow.png +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib/common/_module-video-thumbnail.scss → asset_framework/plugin_factory/directives/video-thumbnail/_video-thumbnail.scss} +4 -4
- data/lib/fanforce/plugin_factory/{assets/lib/common/module-video-thumbnail → asset_framework/plugin_factory/directives/video-thumbnail}/icon-play.png +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/font-awesome.coffee +1 -0
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/font-awesome/font → asset_framework/plugin_factory/font-awesome}/FontAwesome.otf +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/font-awesome/css → asset_framework/plugin_factory/font-awesome}/font-awesome.css +2 -2
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/font-awesome/css → asset_framework/plugin_factory/font-awesome}/font-awesome.min.css +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/font-awesome/font → asset_framework/plugin_factory/font-awesome}/fontawesome-webfont.eot +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/font-awesome/font → asset_framework/plugin_factory/font-awesome}/fontawesome-webfont.svg +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/font-awesome/font → asset_framework/plugin_factory/font-awesome}/fontawesome-webfont.ttf +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib/vendors/font-awesome/font → asset_framework/plugin_factory/font-awesome}/fontawesome-webfont.woff +0 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib.coffee +1 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-focus-blur.js +68 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/lib/ng-visible.js +7 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/ui-select.coffee +1 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/ui-select/select.css +171 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/ui-select/select.js +1281 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/ui-select/select_override.scss +1 -0
- data/lib/fanforce/plugin_factory/asset_framework/plugin_factory/ui-select/selectize.default.css +443 -0
- data/lib/fanforce/plugin_factory/cli.rb +5 -0
- data/lib/fanforce/plugin_factory/cli/lib/bitbucket.rb +77 -0
- data/lib/fanforce/plugin_factory/cli/lib/bundler.rb +21 -0
- data/lib/fanforce/plugin_factory/cli/lib/env.rb +96 -0
- data/lib/fanforce/plugin_factory/cli/lib/git.rb +59 -0
- data/lib/fanforce/plugin_factory/cli/lib/heroku.rb +94 -0
- data/lib/fanforce/plugin_factory/cli/lib/iron.rb +71 -0
- data/lib/fanforce/plugin_factory/cli/lib/pow.rb +46 -0
- data/lib/fanforce/plugin_factory/cli/lib/scaffolding.rb +74 -0
- data/lib/fanforce/plugin_factory/cli/lib/scaffolding_file.rb +510 -0
- data/lib/fanforce/plugin_factory/cli/lib/uranium.rb +77 -0
- data/lib/fanforce/plugin_factory/cli/lib/utils.rb +57 -0
- data/lib/fanforce/plugin_factory/cli/scripts/config.rb +9 -0
- data/lib/fanforce/plugin_factory/cli/scripts/create.rb +64 -0
- data/lib/fanforce/plugin_factory/cli/scripts/destroy.rb +61 -0
- data/lib/fanforce/plugin_factory/cli/scripts/diff.rb +156 -0
- data/lib/fanforce/plugin_factory/cli/scripts/push.rb +88 -0
- data/lib/fanforce/plugin_factory/cli/scripts/restart.rb +41 -0
- data/lib/fanforce/plugin_factory/cli/scripts/setup.rb +70 -0
- data/lib/fanforce/plugin_factory/cli/scripts/update.rb +132 -0
- data/lib/fanforce/plugin_factory/cli_directory_of_plugins.rb +51 -0
- data/lib/fanforce/plugin_factory/cli_single_plugin.rb +52 -0
- data/lib/fanforce/plugin_factory/controllers/base_controller.rb +15 -0
- data/lib/fanforce/plugin_factory/core_config.rb +94 -0
- data/lib/fanforce/plugin_factory/directive_views/initiative-footer.haml +8 -0
- data/lib/fanforce/plugin_factory/load.rb +7 -0
- data/lib/fanforce/plugin_factory/load_iron_worker.rb +2 -0
- data/lib/fanforce/plugin_factory/load_sprockets.rb +2 -0
- data/lib/fanforce/plugin_factory/plugin.rb +60 -0
- data/lib/fanforce/plugin_factory/scaffolding/._.gitignore.registry +1 -0
- data/lib/fanforce/plugin_factory/scaffolding/._Gemfile.registry +3 -0
- data/lib/fanforce/plugin_factory/scaffolding/._Rakefile.registry +3 -0
- data/lib/fanforce/plugin_factory/scaffolding/._config.json.registry +2 -0
- data/lib/fanforce/plugin_factory/scaffolding/._config.ru.registry +4 -0
- data/lib/fanforce/plugin_factory/scaffolding/._favicon.ico.registry +1 -0
- data/lib/fanforce/plugin_factory/scaffolding/._robots.txt.registry +3 -0
- data/lib/fanforce/plugin_factory/scaffolding/.gitignore +27 -0
- data/lib/fanforce/plugin_factory/scaffolding/Gemfile +9 -0
- data/lib/fanforce/plugin_factory/scaffolding/Rakefile +7 -0
- data/lib/fanforce/plugin_factory/scaffolding/Routes.rb +67 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/css/._fembedded.scss.registry +4 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/css/._promotional.scss.registry +4 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/css/._visitor.scss.registry +4 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/css/fembedded.scss +24 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/css/promotional.scss +33 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/css/visitor.scss +61 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/img/._icon-16.png.registry +1 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/img/._icon-32.png.registry +1 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/img/._icon-42.png.registry +1 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/img/._marketplace.png.registry +1 -0
- data/lib/fanforce/plugin_factory/{assets → scaffolding/assets}/img/icon-16.png +0 -0
- data/lib/fanforce/plugin_factory/{assets → scaffolding/assets}/img/icon-32.png +0 -0
- data/lib/fanforce/plugin_factory/{assets → scaffolding/assets}/img/icon-42.png +0 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/img/marketplace.png +0 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/img/promotional/._fanforce_bg.png.registry +1 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/img/promotional/._icon-42.png.registry +1 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/img/promotional/._icon-plus.png.registry +1 -0
- data/lib/fanforce/plugin_factory/{assets/lib → scaffolding/assets/img}/promotional/fanforce_bg.png +0 -0
- data/lib/fanforce/plugin_factory/{assets/lib → scaffolding/assets/img}/promotional/icon-42.png +0 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/img/promotional/icon-plus.png +0 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/._fembedded-app.coffee.registry +5 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/._fembedded.js.registry +3 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/._promotional.js.registry +3 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/fembedded-app.coffee +11 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/fembedded.js +12 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/lib/._cookie.coffee.registry +3 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/lib/._filters.coffee.registry +3 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/lib/._utils.coffee.registry +3 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/lib/cookie.coffee +24 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/lib/filters.coffee +9 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/lib/utils.coffee +40 -0
- data/lib/fanforce/plugin_factory/scaffolding/assets/js/promotional.js +4 -0
- data/lib/fanforce/plugin_factory/scaffolding/config.json +24 -0
- data/lib/fanforce/plugin_factory/scaffolding/config.ru +8 -0
- data/lib/fanforce/plugin_factory/{public → scaffolding}/favicon.ico +0 -0
- data/lib/fanforce/plugin_factory/scaffolding/layouts/._fembedded.haml.registry +4 -0
- data/lib/fanforce/plugin_factory/scaffolding/layouts/._promotional.haml.registry +2 -0
- data/lib/fanforce/plugin_factory/scaffolding/layouts/._visitor.haml.registry +6 -0
- data/lib/fanforce/plugin_factory/scaffolding/layouts/fembedded.haml +26 -0
- data/lib/fanforce/plugin_factory/{layouts → scaffolding/layouts}/promotional.haml +6 -6
- data/lib/fanforce/plugin_factory/{layouts/engage.haml → scaffolding/layouts/visitor.haml} +10 -7
- data/lib/fanforce/plugin_factory/scaffolding/robots.txt +7 -0
- data/lib/fanforce/plugin_factory/scaffolding/views/._index.haml.registry +3 -0
- data/lib/fanforce/plugin_factory/{views → scaffolding/views}/index.haml +13 -7
- data/lib/fanforce/plugin_factory/sinatra/_load.rb +87 -0
- data/lib/fanforce/plugin_factory/sinatra/error_handling.rb +48 -0
- data/lib/fanforce/plugin_factory/sinatra/helper_routes/com_behavior.rb +19 -0
- data/lib/fanforce/plugin_factory/sinatra/helper_routes/com_broadcaster.rb +7 -0
- data/lib/fanforce/plugin_factory/sinatra/helper_routes/com_connector.rb +11 -0
- data/lib/fanforce/plugin_factory/sinatra/helper_routes/com_identifier.rb +3 -0
- data/lib/fanforce/plugin_factory/sinatra/helper_routes/com_js_widget.rb +8 -0
- data/lib/fanforce/plugin_factory/sinatra/helper_routes/plugin.rb +50 -0
- data/lib/fanforce/plugin_factory/sinatra/helpers/assets.rb +23 -0
- data/lib/fanforce/plugin_factory/sinatra/helpers/css_frameworks.rb +70 -0
- data/lib/fanforce/plugin_factory/sinatra/helpers/fanforce.rb +18 -0
- data/lib/fanforce/plugin_factory/{config → sinatra}/helpers/json.rb +2 -2
- data/lib/fanforce/plugin_factory/sinatra/helpers/ractive.rb +45 -0
- data/lib/fanforce/plugin_factory/sprockets/compiler.rb +5 -11
- data/lib/fanforce/plugin_factory/sprockets/hacks.rb +2 -2
- data/lib/fanforce/plugin_factory/version.rb +2 -2
- metadata +201 -195
- data/.rbenv-gemsets +0 -1
- data/.rbenv-version +0 -1
- data/lib/fanforce/plugin_factory.rake +0 -72
- data/lib/fanforce/plugin_factory/_init_sinatra.rb +0 -54
- data/lib/fanforce/plugin_factory/assets/css/add_edit_initiative.scss +0 -1
- data/lib/fanforce/plugin_factory/assets/css/add_source.scss +0 -1
- data/lib/fanforce/plugin_factory/assets/css/convert_pending_initiative.scss +0 -1
- data/lib/fanforce/plugin_factory/assets/css/engage.scss +0 -1
- data/lib/fanforce/plugin_factory/assets/css/new_message.scss +0 -1
- data/lib/fanforce/plugin_factory/assets/css/promotional.scss +0 -1
- data/lib/fanforce/plugin_factory/assets/css/source_details.scss +0 -1
- data/lib/fanforce/plugin_factory/assets/js/add_edit_initiative.js +0 -1
- data/lib/fanforce/plugin_factory/assets/js/add_source.js +0 -1
- data/lib/fanforce/plugin_factory/assets/js/convert_pending_initiative.js +0 -1
- data/lib/fanforce/plugin_factory/assets/js/engage.js +0 -1
- data/lib/fanforce/plugin_factory/assets/js/new_message.js +0 -1
- data/lib/fanforce/plugin_factory/assets/js/promotional.js +0 -2
- data/lib/fanforce/plugin_factory/assets/js/source_details.js +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/_module-error.scss +0 -11
- data/lib/fanforce/plugin_factory/assets/lib/common/_module-page-loading.scss +0 -1
- data/lib/fanforce/plugin_factory/assets/lib/common/_module-saving-initiative.scss +0 -6
- data/lib/fanforce/plugin_factory/assets/lib/common/_tags.scss +0 -1
- data/lib/fanforce/plugin_factory/assets/lib/common/_variables.scss +0 -27
- data/lib/fanforce/plugin_factory/assets/lib/common/broadcaster-divider-arrow.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/icons/dropdown-arrow.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/icons/initiative.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_add_edit_initiative.scss +0 -27
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_add_source.scss +0 -18
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_convert_pending_initiative.scss +0 -27
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_engage.scss +0 -78
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_new_message.scss +0 -24
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_promotional.scss +0 -27
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/_source_details.scss +0 -17
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/add_edit_initiative.js +0 -6
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/add_source.js +0 -6
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/convert_pending_initiative.js +0 -6
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/engage.js +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/new_message.js +0 -5
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/promotional.js +0 -1
- data/lib/fanforce/plugin_factory/assets/lib/common/layouts/source_details.js +0 -5
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-behavior.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-broadcaster.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-data-connector.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-data-processor.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/promotional/icon-identifier.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.css +0 -7
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-datepicker/datepicker.js +0 -454
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.css +0 -82
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap-timepicker/timepicker.js +0 -803
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/css/bootstrap.min.css +0 -7
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-regular.eot +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-regular.svg +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-regular.ttf +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/bootstrap/img/glyphicons-halflings-regular.woff +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/_chosen_override.scss +0 -6
- data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen-sprite.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen-sprite@2x.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen.jquery.js +0 -1166
- data/lib/fanforce/plugin_factory/assets/lib/vendors/chosen/chosen.scss +0 -434
- data/lib/fanforce/plugin_factory/assets/lib/vendors/jquery/jquery-1.10.2.js +0 -9789
- data/lib/fanforce/plugin_factory/assets/lib/vendors/jquery/jquery.inputHint.js +0 -154
- data/lib/fanforce/plugin_factory/assets/lib/vendors/jquery/jquery.tmpl.debug.js +0 -484
- data/lib/fanforce/plugin_factory/assets/lib/vendors/knockout/knockout.custom-handlers.coffee +0 -155
- data/lib/fanforce/plugin_factory/assets/lib/vendors/knockout/knockout.debug.js +0 -4469
- data/lib/fanforce/plugin_factory/assets/lib/vendors/knockout/knockout.min.js +0 -96
- data/lib/fanforce/plugin_factory/assets/lib/vendors/select2/_select2_override.scss +0 -47
- data/lib/fanforce/plugin_factory/assets/lib/vendors/select2/select2-spinner.gif +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/select2/select2.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/select2/select2.scss +0 -617
- data/lib/fanforce/plugin_factory/assets/lib/vendors/select2/select2_modified.js +0 -3225
- data/lib/fanforce/plugin_factory/assets/lib/vendors/select2/select2x2.png +0 -0
- data/lib/fanforce/plugin_factory/assets/lib/vendors/underscore/underscore.debug.js +0 -999
- data/lib/fanforce/plugin_factory/config/_error_handling.rb +0 -27
- data/lib/fanforce/plugin_factory/config/core_config.rb +0 -92
- data/lib/fanforce/plugin_factory/config/helpers/assets.rb +0 -72
- data/lib/fanforce/plugin_factory/config/helpers/fanforce.rb +0 -19
- data/lib/fanforce/plugin_factory/layouts/add_edit_initiative.haml +0 -19
- data/lib/fanforce/plugin_factory/layouts/add_source.haml +0 -19
- data/lib/fanforce/plugin_factory/layouts/convert_pending_initiative.haml +0 -19
- data/lib/fanforce/plugin_factory/layouts/new_message.haml +0 -19
- data/lib/fanforce/plugin_factory/layouts/source_details.haml +0 -19
- data/lib/fanforce/plugin_factory/public/robots.txt +0 -2
- data/lib/fanforce/plugin_factory/routes.rb +0 -48
- data/lib/fanforce/plugin_factory/routes_behavior.rb +0 -34
- data/lib/fanforce/plugin_factory/routes_broadcaster.rb +0 -9
- data/lib/fanforce/plugin_factory/routes_data_connector.rb +0 -21
- data/lib/fanforce/plugin_factory/routes_identifier.rb +0 -3
- data/lib/fanforce/plugin_factory/views/add_initiative.haml +0 -1
- data/lib/fanforce/plugin_factory/views/add_source.haml +0 -1
- data/lib/fanforce/plugin_factory/views/close_popup.haml +0 -8
- data/lib/fanforce/plugin_factory/views/convert_pending_initiative.haml +0 -1
- data/lib/fanforce/plugin_factory/views/edit_initiative.haml +0 -1
- data/lib/fanforce/plugin_factory/views/engage.haml +0 -1
- data/lib/fanforce/plugin_factory/views/new_message.haml +0 -1
- data/lib/fanforce/plugin_factory/views/source_details.haml +0 -1
- data/lib/fanforce/plugin_factory/views/widget_tmpls.haml +0 -1
- data/lib/fanforce/plugin_factory_workers.rb +0 -2
data/.gitignore
CHANGED
data/.ruby-version
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
1.9.3-p194
|
data/.yardopts
ADDED
data/.yardopts.rb
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require 'redcarpet/compat'
|
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -17,19 +17,16 @@ ruby '1.9.3'
|
|
17
17
|
|
18
18
|
gem 'fanforce-plugin-factory'
|
19
19
|
```
|
20
|
-
One you've created the Gemfile you'll need to run
|
20
|
+
One you've created the Gemfile you'll need to run bundle install.
|
21
21
|
|
22
22
|
### /config.ru
|
23
|
-
Only
|
23
|
+
Only four lines are required (you must have a Redis server).
|
24
24
|
|
25
25
|
```ruby
|
26
26
|
require 'bundler'; Bundler.setup
|
27
|
-
require 'fanforce/
|
28
|
-
|
29
|
-
|
30
|
-
config.type = :behavior # :data_connector, :data_processor, :broadcaster, :identifier, :behavior
|
31
|
-
end
|
32
|
-
run FanforcePlugin
|
27
|
+
require 'fanforce/plugin_factory'
|
28
|
+
Fanforce::Plugin.config { |config| config._id = 'facebook' }
|
29
|
+
run Fanforce::Plugin
|
33
30
|
```
|
34
31
|
You can replace config._id (as in the example above) with an environment variable: ENV['FANFORCE_PLUGIN_ID']
|
35
32
|
|
@@ -38,23 +35,19 @@ Your plugin can now be added to the Fanforce Marketplace. Use the follow config
|
|
38
35
|
|
39
36
|
```ruby
|
40
37
|
"public_urls": {
|
38
|
+
"marketplace_img": "http://${PRIMARY_DOMAIN}/assets/marketplace.png",
|
41
39
|
"icon_16": "http://${PRIMARY_DOMAIN}/assets/icon-16.png",
|
42
|
-
"icon_32": "http://${PRIMARY_DOMAIN}/assets/icon-32.png"
|
40
|
+
"icon_32": "http://${PRIMARY_DOMAIN}/assets/icon-32.png"
|
43
41
|
"icon_42": "http://${PRIMARY_DOMAIN}/assets/icon-42.png"
|
44
42
|
},
|
45
43
|
"staffer_ui_urls": {
|
46
|
-
"
|
47
|
-
"edit_initiative": "http://${PRIMARY_DOMAIN}/edit_initiative.html"
|
44
|
+
"dashboard": "http://${PRIMARY_DOMAIN}/dashboard.html"
|
48
45
|
},
|
49
46
|
"callback_urls": {
|
50
47
|
"install": "http://${PRIMARY_DOMAIN}/install",
|
51
48
|
"uninstall": "http://${PRIMARY_DOMAIN}/uninstall"
|
52
49
|
},
|
53
|
-
"
|
54
|
-
{
|
55
|
-
"widget-name-here": "http://${PRIMARY_DOMAIN}/widget_tmpls"
|
56
|
-
}
|
57
|
-
]
|
50
|
+
"plugin_dependencies": []
|
58
51
|
```
|
59
52
|
Note: for development and testing we recommend using the [POW server](http://pow.cx/), but you can use rackup or any other server to run your new plugin.
|
60
53
|
|
@@ -67,44 +60,29 @@ There are lots of ways you can start building out and customizing your plugin...
|
|
67
60
|
Use the assets folder to store all your images, css, and javascript files. There are six asset files that are required. If any are missing, the fanforce-plugin-factory sends default versions when requested.
|
68
61
|
|
69
62
|
*Default Assets:*
|
70
|
-
* /css
|
71
|
-
* /add_edit_initiative.css - this is loaded from the add_edit_initiative.haml layout.
|
72
|
-
* /add_source.css - this is loaded from the add_source.haml layout.
|
73
|
-
* /engage.css - this is loaded from the engage.haml layout.
|
74
|
-
* /new_message.css - this is loaded from the new_message.haml layout.
|
75
|
-
* /source_details.css - this is loaded from the source_details.haml layout.
|
76
63
|
* /js
|
77
|
-
* /
|
78
|
-
|
79
|
-
* /
|
80
|
-
* /engage.js - this is loaded from the engage.haml layout.
|
81
|
-
* /new_message.js - this is loaded from the new_message.haml layout.
|
82
|
-
* /source_details.js - this is loaded from the source_details.haml layout.
|
64
|
+
* /dashboard.js - this is included in the dashboard.html file.
|
65
|
+
* /css
|
66
|
+
* /dashboard.css - this is also included in the dashboard.html file.
|
83
67
|
* /img
|
84
68
|
* /icon-16.png - this icon must be 16px by 16px.
|
85
69
|
* /icon-32.png - this icon must be 32px by 32px.
|
86
70
|
* /icon-42.png - this icon must be 42px by 42px.
|
71
|
+
* /marketplace.png - this icon must be 220px by 142px.
|
87
72
|
|
88
73
|
### /views
|
89
|
-
HAML is
|
74
|
+
HAML is setup by default. The extension is changed to .html when served in the browser.
|
90
75
|
|
91
|
-
*Default Views
|
92
|
-
* /
|
93
|
-
* /
|
94
|
-
* /engage.haml - used in the Command Center.
|
95
|
-
|
96
|
-
*Default Views for Broadcaster Plugins:*
|
97
|
-
* /new_message.haml - used in the Command Center.
|
76
|
+
*Default Views:*
|
77
|
+
* /index.haml - default page visitors will see if they try to access domain
|
78
|
+
* /dashboard.haml - used in the Command Center
|
98
79
|
|
99
80
|
### /layouts
|
100
81
|
You can turn off layouts from be used (see Advanced Configuration)
|
101
82
|
|
102
|
-
*Default Layouts
|
103
|
-
* /
|
104
|
-
* /
|
105
|
-
|
106
|
-
*Default Layouts for Broadcaster Plugins:*
|
107
|
-
* /new_message.haml - the wrapper layout for views/new_message.haml
|
83
|
+
*Default Layouts:*
|
84
|
+
* /dashboard.haml - the wrapper layout for views/dashboard.haml
|
85
|
+
* /promotional.haml - the wrapper layout for views/index.haml
|
108
86
|
|
109
87
|
### /public
|
110
88
|
Anything you put in here will be publicly available. The only folder you should not use is /assets, since it is used for precompiling assets (see below).
|
@@ -113,19 +91,19 @@ Anything you put in here will be publicly available. The only folder you should
|
|
113
91
|
* /favicon.ico
|
114
92
|
|
115
93
|
### /config/routes.rb
|
116
|
-
The fanforce-plugin-factory sets up all the required routes. If you want to customize existing routes or add new ones, create a routes.rb file
|
94
|
+
The fanforce-plugin-factory sets up all the required routes. If you want to customize existing routes or add new ones, create a config/routes.rb file and specify routes within the Plugin:Sinatra class:
|
117
95
|
```
|
118
|
-
class
|
96
|
+
class Plugin::Sinatra
|
119
97
|
get '/test' do
|
120
98
|
"Custom route!"
|
121
99
|
end
|
122
100
|
end
|
123
101
|
```
|
124
|
-
Check out [Sinatra's](http://www.sinatrarb.com/documentation) documentation for more details on routes and much more. The
|
102
|
+
Check out [Sinatra's](http://www.sinatrarb.com/documentation) documentation for more details on routes and much more. The Plugin::Sinatra inherits from the Sinatra::Base, which gives you full control to customize the fanforce-plugin-factory's sinatra implementation as much as you want.
|
125
103
|
|
126
|
-
Overwrite any existing routes by specifying them in your routes.rb. You can also pull default route logic into your new custom routes by calling route_[NAME_OF_ROUTE] method.
|
104
|
+
Overwrite any existing routes by specifying them in your config/routes.rb. You can also pull default route logic into your new custom routes by calling route_[NAME_OF_ROUTE] method.
|
127
105
|
```
|
128
|
-
class
|
106
|
+
class Plugin::Sinatra
|
129
107
|
any '/install' do
|
130
108
|
# do whatever you want here
|
131
109
|
route_install
|
@@ -134,29 +112,17 @@ end
|
|
134
112
|
```
|
135
113
|
*Default Routes:*
|
136
114
|
- route_index: get ['/','/index.html']
|
115
|
+
- route_dashboard: get '/dashboard.html'
|
137
116
|
- route_install: post '/install'
|
138
117
|
- route_uninstall: post '/uninstall'
|
139
118
|
|
140
|
-
*Default Routes for Behavior Plugins:*
|
141
|
-
- route_add_initiative: get '/add_initiative.html'
|
142
|
-
- route_edit_initiative: get '/add_initiative.html'
|
143
|
-
- route_widget_tmpls: get '/widget_tmpls.html'
|
144
|
-
- route_engage: get '/:organization_slug/:initiative_slug/engage.html'
|
145
|
-
|
146
|
-
*Default Routes for Broadcaster Plugins:*
|
147
|
-
- route_new_message: get '/new_message.html'
|
148
|
-
|
149
|
-
*Default Routes for Data Connector Plugins:*
|
150
|
-
- route_add_source: get '/add_source.html'
|
151
|
-
- route_source_details: get '/source_details.html'
|
152
|
-
|
153
119
|
### /config/initializer.rb
|
154
120
|
If you need to run Sinatra middleware or other non-route code, you'll want to create a config/initializer.rb file. This file is required before config/routes.rb. As an example, if you want to use the OmniAuth Facebook Strategy, you would include the following in config/initializer.rb:
|
155
121
|
```
|
156
122
|
require 'omniauth'
|
157
123
|
require 'omniauth-constantcontact2'
|
158
124
|
|
159
|
-
class
|
125
|
+
class Plugin::Sinatra
|
160
126
|
|
161
127
|
use Rack::Session::Cookie
|
162
128
|
use OmniAuth::Builder do
|
@@ -169,7 +135,8 @@ end
|
|
169
135
|
### /lib/*
|
170
136
|
If you create a lib/ folder in your plugin's home directory, it will be automatically added to your plugin's ruby path. This allows you to require 'any_file' that has been put in this folder.
|
171
137
|
|
172
|
-
|
138
|
+
|
139
|
+
# Loading Pages/Layouts In Controllers
|
173
140
|
Fanforce-plugin-factory adds a helper method on top of the Sinatra code base to load pages and layouts. It's called page:
|
174
141
|
```
|
175
142
|
get '/custom.html' do
|
@@ -189,42 +156,40 @@ end
|
|
189
156
|
```
|
190
157
|
If a callback param is sent in the request then your json is automatically converted to JSONR[http://github.com/calebclark/rack-jsonr] (JSON Resource).
|
191
158
|
|
192
|
-
# Asset Helpers
|
193
|
-
Fanforce-plugin-factory comes with a few asset helpers you can use in your haml pages:
|
194
|
-
|
195
|
-
- stylesheet(absolute_or_relative_path) - creates style tag
|
196
|
-
- javascript(absolute_or_relative_path) - creates script tag
|
197
|
-
- asset_path(absolute_or_relative_path) - prints path to asset
|
198
159
|
|
199
160
|
# Precompile Your Assets for Faster Delivery
|
200
161
|
Heroku tries to run `rake assets:precompile` when pushing new code changes. Fanforce-plugin-factory has this rake task built-in. To activate, just create a new Rakefile in your plugin directory with the following:
|
201
162
|
```
|
202
163
|
require 'bundler'; Bundler.setup
|
203
164
|
require 'fanforce/plugin'
|
204
|
-
FanforcePlugin.config do |config|
|
205
|
-
config.type = :behavior # :data_connector, :data_processor, :broadcaster, :identifier, :behavior
|
206
|
-
end
|
207
165
|
load 'fanforce/plugin.rake'
|
208
166
|
```
|
209
167
|
|
168
|
+
# Create Plugin-Specific ENV Variables In Development
|
169
|
+
Documentation coming soon.
|
170
|
+
|
210
171
|
# Configure Redis
|
211
172
|
By default fanforce-plugin-factory looks for ENV['REDIS_URL'] and if that isn't found, it falls back to redis://localhost:6379. You can specify a custom redis url with `config.redis_url = ` in config.ru:
|
212
173
|
```
|
213
|
-
|
174
|
+
require 'bundler'; Bundler.setup
|
175
|
+
require 'fanforce/plugin_factory'
|
176
|
+
Fanforce::Plugin.config do |config|
|
214
177
|
config.redis_url = 'redis://USERNAME:PASSWORD@HOST:PORT'
|
215
178
|
end
|
179
|
+
load 'fanforce/plugin.rake'
|
216
180
|
```
|
217
181
|
|
182
|
+
|
218
183
|
# Using Fanforce::Worker
|
219
184
|
|
220
|
-
|
185
|
+
Fanforce::Plugin includes the fanforce-workers gem by default and includes a convenience helper method. Fanforce::Plugin.enqueue
|
221
186
|
will prefix the name of your worker with the name of your plugin to ensure there are no conflicts across multiple plugins
|
222
|
-
or
|
187
|
+
or plugins. This is the naming convention used by Fanforce Factory when creating and uploading Iron.io workers.
|
223
188
|
|
224
189
|
As an example, if you have a testing.worker file, you would use the following command:
|
225
190
|
|
226
191
|
```
|
227
|
-
|
192
|
+
Fanforce::Plugin.enqueue 'testing', {params_to_send: 'whatever'}
|
228
193
|
```
|
229
194
|
|
230
195
|
|
data/Rakefile
CHANGED
@@ -3,14 +3,71 @@ require 'rake/testtask'
|
|
3
3
|
require 'fileutils'
|
4
4
|
include FileUtils
|
5
5
|
|
6
|
-
|
7
|
-
|
6
|
+
task :pre_build do
|
7
|
+
Rake::Task['test'].execute
|
8
|
+
puts '---------------------------------------------------------------------'
|
9
|
+
puts 'TESTS PASSED!'
|
10
|
+
puts '---------------------------------------------------------------------'
|
11
|
+
puts 'UPDATING SCAFFOLDING DIGESTS...'
|
12
|
+
Rake::Task['scaffolding:register'].execute
|
13
|
+
puts 'READY TO BUILD!'
|
14
|
+
puts '---------------------------------------------------------------------'
|
15
|
+
end
|
16
|
+
|
17
|
+
namespace :scaffolding do
|
18
|
+
require 'digest'
|
19
|
+
|
20
|
+
class Fanforce::CLI
|
21
|
+
DIR = ''
|
22
|
+
TYPE = ''
|
23
|
+
end
|
24
|
+
|
25
|
+
require 'fanforce/plugin_factory/cli'
|
26
|
+
require 'fanforce/plugin_factory/cli/lib/scaffolding_file'
|
27
|
+
|
28
|
+
task :register do
|
29
|
+
scaffolding_dir = File.expand_path('../lib/fanforce/plugin_factory/scaffolding', __FILE__)
|
30
|
+
|
31
|
+
Dir.glob("#{scaffolding_dir}/**/*", File::FNM_DOTMATCH).each do |scaffold_filepath|
|
32
|
+
next if scaffold_filepath =~ /\.registry/ or File.directory?(scaffold_filepath)
|
33
|
+
|
34
|
+
file_parts = scaffold_filepath.split('/')
|
35
|
+
registry_filepath = "#{file_parts[0...-1].join('/')}/._#{file_parts[-1]}.registry"
|
36
|
+
|
37
|
+
file = Fanforce::PluginFactory::CLI::ScaffoldingFile.new(scaffold_filepath)
|
38
|
+
if [:file,:image,:partial].include?(file.scaffold_type)
|
39
|
+
next if file.digest_exists_in_registry?(file.scaffold_digest)
|
40
|
+
File.open(registry_filepath, 'a') {|f|
|
41
|
+
f.puts "fanforce-plugin-factory-#{Fanforce::PluginFactory::VERSION}:#{file.scaffold_digest}"
|
42
|
+
}
|
43
|
+
elsif [:items].include?(file.scaffold_type)
|
44
|
+
scaffold_contents = File.open(file.scaffold_filepath).read
|
45
|
+
raise "item changes are not registered for #{file.scaffold_filepath}" if !file.list_matches_latest_registry?(scaffold_contents)
|
46
|
+
next
|
47
|
+
elsif [:json].include?(file.scaffold_type)
|
48
|
+
scaffold_contents = File.open(file.scaffold_filepath).read
|
49
|
+
raise "json changes are not registered for #{file.scaffold_filepath}" if !file.json_matches_latest_registry?(scaffold_contents)
|
50
|
+
next
|
51
|
+
elsif [:skipped].include?(file.scaffold_type)
|
52
|
+
next
|
53
|
+
else
|
54
|
+
raise "unknown scaffold type: #{file.scaffold_type}"
|
55
|
+
end
|
56
|
+
|
57
|
+
puts "- REGISTERED #{scaffold_filepath.gsub(scaffolding_dir, '')} (#{file.scaffold_type})"
|
58
|
+
end
|
59
|
+
end
|
60
|
+
|
61
|
+
end
|
62
|
+
|
63
|
+
task :build => :pre_build
|
64
|
+
task :default => :build
|
8
65
|
|
9
66
|
########################################################################
|
10
67
|
|
11
68
|
Rake::TestTask.new do |t|
|
12
|
-
t.libs.push
|
13
|
-
t.libs.push
|
69
|
+
t.libs.push 'lib'
|
70
|
+
t.libs.push 'test'
|
14
71
|
t.pattern = 'test/**/*_test.rb'
|
15
72
|
t.verbose = false
|
16
73
|
end
|
@@ -10,34 +10,34 @@ Gem::Specification.new do |gem|
|
|
10
10
|
gem.summary = %q{Everything needed to setup a new plugin on Fanforce}
|
11
11
|
gem.authors = ['Caleb Clark']
|
12
12
|
gem.email = ['cclark@fanforce.com']
|
13
|
-
gem.homepage = 'http://github.com/
|
13
|
+
gem.homepage = 'http://github.com/fanforce/gem-fanforce-plugin-factory'
|
14
14
|
|
15
15
|
gem.files = `git ls-files`.split($/)
|
16
16
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
17
|
-
gem.require_paths = [
|
17
|
+
gem.require_paths = ['lib']
|
18
18
|
|
19
|
-
gem.add_runtime_dependency 'rake', '~>
|
20
|
-
gem.add_runtime_dependency 'redis', '~> 3.0
|
21
|
-
gem.add_runtime_dependency 'sinatra', '~> 1.4.
|
22
|
-
gem.add_runtime_dependency 'sinatra-contrib', '~> 1.4.
|
19
|
+
gem.add_runtime_dependency 'rake', '~> 10.3.2'
|
20
|
+
gem.add_runtime_dependency 'redis', '~> 3.1.0'
|
21
|
+
gem.add_runtime_dependency 'sinatra', '~> 1.4.5'
|
22
|
+
gem.add_runtime_dependency 'sinatra-contrib', '~> 1.4.2'
|
23
23
|
gem.add_runtime_dependency 'rack-contrib', '~> 1.1.0'
|
24
|
-
gem.add_runtime_dependency 'haml', '~> 4.0.
|
25
|
-
gem.add_runtime_dependency 'coffee-script', '~> 2.
|
26
|
-
gem.add_runtime_dependency 'activesupport', '3.2.13'
|
24
|
+
gem.add_runtime_dependency 'haml', '~> 4.0.5'
|
25
|
+
gem.add_runtime_dependency 'coffee-script', '~> 2.3.0'
|
27
26
|
|
28
|
-
gem.add_runtime_dependency 'sass', '~> 3.
|
29
|
-
gem.add_runtime_dependency 'compass', '~> 0.
|
30
|
-
gem.add_runtime_dependency 'sprockets', '~> 2.
|
31
|
-
gem.add_runtime_dependency 'sprockets-sass', '~> 1.0
|
27
|
+
gem.add_runtime_dependency 'sass', '~> 3.4.5'
|
28
|
+
gem.add_runtime_dependency 'compass', '~> 1.0.1'
|
29
|
+
gem.add_runtime_dependency 'sprockets', '~> 2.12.2'
|
30
|
+
gem.add_runtime_dependency 'sprockets-sass', '~> 1.2.0'
|
32
31
|
gem.add_runtime_dependency 'yui-compressor', '~> 0.12.0'
|
33
|
-
gem.add_runtime_dependency 'uglifier', '~> 2.
|
34
|
-
gem.add_runtime_dependency 'therubyracer', '~> 0.12.
|
32
|
+
gem.add_runtime_dependency 'uglifier', '~> 2.5.3'
|
33
|
+
gem.add_runtime_dependency 'therubyracer', '~> 0.12.1'
|
35
34
|
|
36
|
-
gem.add_runtime_dependency 'bugsnag', '~>
|
37
|
-
gem.add_runtime_dependency 'rack-jsonr', '~> 0.2.
|
35
|
+
gem.add_runtime_dependency 'bugsnag', '~> 2.5.0'
|
36
|
+
gem.add_runtime_dependency 'rack-jsonr', '~> 0.2.7'
|
38
37
|
|
39
|
-
gem.add_runtime_dependency '
|
40
|
-
|
41
|
-
gem.add_runtime_dependency 'fanforce-
|
42
|
-
gem.add_runtime_dependency 'fanforce-
|
38
|
+
gem.add_runtime_dependency 'rest_client', '= 1.7.3'
|
39
|
+
|
40
|
+
gem.add_runtime_dependency 'fanforce-base', '~> 1.6.0'
|
41
|
+
gem.add_runtime_dependency 'fanforce-api', '~> 1.6.0'
|
42
|
+
gem.add_runtime_dependency 'fanforce-plugin-worker', '~> 1.6.0'
|
43
43
|
end
|
@@ -1,68 +1,26 @@
|
|
1
|
-
ENV['RACK_ENV'] ||= 'development'
|
2
|
-
####################################################################################
|
3
|
-
require 'rack/jsonr'
|
4
|
-
require 'fanforce/api'
|
5
|
-
require 'fanforce/worker'
|
6
|
-
require 'active_support/all'
|
7
|
-
require 'sinatra/base'
|
8
|
-
require 'fileutils'
|
9
|
-
require 'redis'
|
10
1
|
require_relative 'plugin_factory/version'
|
2
|
+
require_relative 'plugin_factory/load'
|
11
3
|
|
12
|
-
|
13
|
-
require_relative 'plugin_factory/sprockets/hacks'
|
14
|
-
require_relative 'plugin_factory/sprockets/compiler'
|
15
|
-
end
|
16
|
-
|
17
|
-
caller[0].split(':')[0] =~ /^(.+(config\.ru|Rakefile))$/ ? ROOT_DIR = File.dirname($1) : nil
|
18
|
-
|
19
|
-
module FanforcePlugin
|
20
|
-
|
21
|
-
def self.enqueue(queue_name, payload)
|
22
|
-
Fanforce::Worker.enqueue "#{config._id}-#{queue_name}", payload
|
23
|
-
end
|
4
|
+
########################################################################################################################
|
24
5
|
|
25
|
-
|
26
|
-
config = @@config ||= FanforcePlugin::CoreConfig.new(ROOT_DIR)
|
27
|
-
if block.present?
|
28
|
-
block.call(config)
|
29
|
-
config.root_dir = File.dirname($1) if !config.root_dir and caller[0].split(':')[0] =~ /^(.+(config\.ru|Rakefile))$/
|
30
|
-
end
|
31
|
-
config
|
32
|
-
end
|
6
|
+
class Fanforce::PluginFactory
|
33
7
|
|
34
|
-
def self.
|
35
|
-
|
36
|
-
|
8
|
+
def self.generate(plugin_base_dir)
|
9
|
+
require_relative 'plugin_factory/plugin'
|
10
|
+
require_relative 'plugin_factory/load_sprockets' if ENV['RACK_ENV'] == 'development'
|
37
11
|
|
38
|
-
|
39
|
-
config.dir_name
|
40
|
-
end
|
41
|
-
|
42
|
-
def self._id
|
43
|
-
config._id
|
12
|
+
Fanforce::Plugin.load(plugin_base_dir)
|
44
13
|
end
|
14
|
+
end
|
45
15
|
|
46
|
-
|
47
|
-
config.type
|
48
|
-
end
|
16
|
+
########################################################################################################################
|
49
17
|
|
50
|
-
|
51
|
-
|
52
|
-
|
18
|
+
# The following is run if file is required from config.ru or Rakefile
|
19
|
+
if caller[0].split(':')[0] =~ /^(.+)\/(config\.ru|Rakefile)$/
|
20
|
+
plugin_base_dir = $1
|
21
|
+
loader_filename = $2
|
22
|
+
ENV['RACK_ENV'] ||= 'development'
|
53
23
|
|
54
|
-
|
55
|
-
|
56
|
-
env['PATH_INFO'] = env['PATH_INFO'].gsub(/^\/assets/, '')
|
57
|
-
sprockets = SprocketsCompiler.setup(FanforcePlugin.config.root_dir)
|
58
|
-
return sprockets.index.call(env)
|
59
|
-
end
|
60
|
-
require_relative 'plugin_factory/_init_sinatra'
|
61
|
-
request = Rack::Request.new(env)
|
62
|
-
Rack::JSONR.intercept_method_override(env, request, request.params, :all)
|
63
|
-
FanforcePlugin::Sinatra.new.call(env)
|
64
|
-
end
|
65
|
-
|
66
|
-
require_relative 'plugin_factory/config/core_config'
|
24
|
+
Fanforce::PluginFactory.generate(plugin_base_dir)
|
25
|
+
load "#{Fanforce::Plugin.config.factory_dir}/Rakefile" if loader_filename == 'Rakefile'
|
67
26
|
end
|
68
|
-
|