rules_engine 0.0.1 → 0.0.3
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +178 -0
- data/VERSION +1 -1
- data/lib/rules_engine.rb +17 -1
- data/lib/rules_engine/discovery.rb +2 -3
- data/lib/rules_engine/job.rb +120 -0
- data/lib/rules_engine/rule.rb +49 -24
- data/lib/rules_engine/rule_outcome.rb +1 -2
- data/lib/rules_engine_view/alerts.rb +56 -0
- data/lib/rules_engine_view/boxes.rb +32 -0
- data/lib/rules_engine_view/buttons.rb +91 -0
- data/lib/rules_engine_view/defer.rb +27 -0
- data/lib/rules_engine_view/form_builder.rb +63 -0
- data/lib/rules_engine_view/form_fields.rb +41 -0
- data/lib/rules_engine_view/form_styles.rb +107 -0
- data/lib/rules_engine_view/model_loader.rb +71 -0
- data/lib/rules_engine_view/navigate.rb +44 -0
- data/rails_generators/manifests/rules_engine.rb +392 -0
- data/rails_generators/manifests/rules_engine.yml +98 -0
- data/rails_generators/manifests/rules_engine_complex.rb +30 -0
- data/rails_generators/manifests/rules_engine_complex.yml +25 -0
- data/rails_generators/manifests/rules_engine_simple.rb +26 -0
- data/rails_generators/manifests/rules_engine_simple.yml +22 -0
- data/rails_generators/rules_engine_generator.rb +49 -23
- data/rails_generators/templates/app/controllers/re_jobs_controller.rb +8 -6
- data/rails_generators/templates/app/controllers/re_pipeline_jobs_controller.rb +6 -7
- data/rails_generators/templates/app/controllers/re_pipelines_controller.rb +36 -16
- data/rails_generators/templates/app/controllers/re_rules_controller.rb +49 -51
- data/rails_generators/templates/app/helpers/re_pipeline_helper.rb +0 -15
- data/rails_generators/templates/app/models/re_job.rb +55 -62
- data/rails_generators/templates/app/models/re_job_audit.rb +3 -7
- data/rails_generators/templates/app/models/re_pipeline.rb +1 -23
- data/rails_generators/templates/app/models/re_pipeline_activated.rb +3 -0
- data/rails_generators/templates/app/models/re_pipeline_activated_observer.rb +4 -4
- data/rails_generators/templates/app/models/re_pipeline_base.rb +5 -5
- data/rails_generators/templates/app/models/re_rule.rb +71 -24
- data/rails_generators/templates/app/models/re_rule_expected_outcome.rb +30 -0
- data/rails_generators/templates/app/rules/complex_rule.rb +133 -0
- data/rails_generators/templates/app/rules/simple_rule.rb +77 -0
- data/rails_generators/templates/app/views/layouts/rules_engine.html.erb +40 -0
- data/rails_generators/templates/app/views/re_jobs/_empty.html.erb +7 -4
- data/rails_generators/templates/app/views/re_jobs/_index_large.html.erb +79 -0
- data/rails_generators/templates/app/views/re_jobs/_index_small.html.erb +42 -0
- data/rails_generators/templates/app/views/re_jobs/_show.html.erb +11 -16
- data/rails_generators/templates/app/views/re_jobs/index.html.erb +11 -19
- data/rails_generators/templates/app/views/re_jobs/index.js.erb +9 -6
- data/rails_generators/templates/app/views/re_jobs/show.html.erb +10 -8
- data/rails_generators/templates/app/views/re_jobs/show.js.erb +4 -1
- data/rails_generators/templates/app/views/re_pipeline_jobs/index.html.erb +10 -16
- data/rails_generators/templates/app/views/re_pipeline_jobs/index.js.erb +10 -8
- data/rails_generators/templates/app/views/re_pipelines/_change.html.erb +17 -15
- data/rails_generators/templates/app/views/re_pipelines/_change_actions.html.erb +12 -12
- data/rails_generators/templates/app/views/re_pipelines/_confirm.html.erb +14 -15
- data/rails_generators/templates/app/views/re_pipelines/_edit.html.erb +7 -8
- data/rails_generators/templates/app/views/re_pipelines/_empty.html.erb +4 -4
- data/rails_generators/templates/app/views/re_pipelines/_index.html.erb +25 -19
- data/rails_generators/templates/app/views/re_pipelines/_new.html.erb +6 -6
- data/rails_generators/templates/app/views/re_pipelines/_show.html.erb +22 -18
- data/rails_generators/templates/app/views/re_pipelines/change.html.erb +8 -8
- data/rails_generators/templates/app/views/re_pipelines/create.js.erb +6 -5
- data/rails_generators/templates/app/views/re_pipelines/edit.html.erb +5 -4
- data/rails_generators/templates/app/views/re_pipelines/edit.js.erb +6 -3
- data/rails_generators/templates/app/views/re_pipelines/index.html.erb +65 -9
- data/rails_generators/templates/app/views/re_pipelines/index.js.erb +18 -0
- data/rails_generators/templates/app/views/re_pipelines/new.html.erb +2 -2
- data/rails_generators/templates/app/views/re_pipelines/new.js.erb +3 -3
- data/rails_generators/templates/app/views/re_pipelines/show.html.erb +17 -19
- data/rails_generators/templates/app/views/re_pipelines/template.html.erb +198 -0
- data/rails_generators/templates/app/views/re_pipelines/update.js.erb +7 -6
- data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_edit.html.erb +7 -0
- data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_help.html.erb +1 -0
- data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_new.html.erb +7 -0
- data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_pipeline.html.erb +22 -0
- data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_script.html.erb +26 -0
- data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_title.html.erb +7 -0
- data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_word.html.erb +13 -0
- data/rails_generators/templates/app/views/re_rule_definitions/complex_rule/_words.html.erb +16 -0
- data/rails_generators/templates/app/views/re_rule_definitions/simple_rule/_edit.html.erb +1 -0
- data/rails_generators/templates/app/views/re_rule_definitions/simple_rule/_form.html.erb +16 -0
- data/rails_generators/templates/app/views/re_rule_definitions/simple_rule/_help.html.erb +1 -0
- data/rails_generators/templates/app/views/re_rule_definitions/simple_rule/_new.html.erb +1 -0
- data/rails_generators/templates/app/views/re_rules/_change.html.erb +25 -25
- data/rails_generators/templates/app/views/re_rules/_edit.html.erb +7 -16
- data/rails_generators/templates/app/views/re_rules/_empty.html.erb +4 -4
- data/rails_generators/templates/app/views/re_rules/_empty.js.erb +3 -3
- data/rails_generators/templates/app/views/re_rules/_error.html.erb +2 -0
- data/rails_generators/templates/app/views/re_rules/_help.html.erb +5 -5
- data/rails_generators/templates/app/views/re_rules/_index.html.erb +15 -15
- data/rails_generators/templates/app/views/re_rules/_menu.html.erb +32 -36
- data/rails_generators/templates/app/views/re_rules/_new.html.erb +9 -18
- data/rails_generators/templates/app/views/re_rules/_show.html.erb +17 -17
- data/rails_generators/templates/app/views/re_rules/destroy.js.erb +7 -6
- data/rails_generators/templates/app/views/re_rules/edit.html.erb +6 -5
- data/rails_generators/templates/app/views/re_rules/edit.js.erb +6 -3
- data/rails_generators/templates/app/views/re_rules/error.html.erb +6 -5
- data/rails_generators/templates/app/views/re_rules/error.js.erb +6 -2
- data/rails_generators/templates/app/views/re_rules/help.html.erb +6 -5
- data/rails_generators/templates/app/views/re_rules/help.js.erb +3 -1
- data/rails_generators/templates/app/views/re_rules/new.html.erb +14 -10
- data/rails_generators/templates/app/views/re_rules/new.js.erb +7 -3
- data/rails_generators/templates/app/views/re_rules/update.js.erb +11 -10
- data/rails_generators/templates/db/migrate/20100308225008_create_re_pipelines.rb +13 -10
- data/rails_generators/templates/doc/README.rules_engine +151 -0
- data/rails_generators/templates/doc/README.rules_engine_features +67 -0
- data/rails_generators/templates/doc/README.rules_engine_view +90 -0
- data/rails_generators/templates/features/re_pipeline/lookup.feature +16 -0
- data/rails_generators/templates/features/step_definitions/common/re_debug_steps.rb +14 -0
- data/rails_generators/templates/features/step_definitions/common/re_error_steps.rb +77 -0
- data/rails_generators/templates/features/step_definitions/common/re_form_steps.rb +59 -0
- data/rails_generators/templates/features/step_definitions/common/re_model_steps.rb +85 -0
- data/rails_generators/templates/features/step_definitions/common/re_user_steps.rb +52 -0
- data/rails_generators/templates/features/step_definitions/common/re_view_steps.rb +49 -0
- data/rails_generators/templates/features/support/blueprint_re_pipelines.rb +20 -0
- data/rails_generators/templates/features/support/rules_engine.rb +28 -0
- data/rails_generators/templates/lib/tasks/re_execute.rake +19 -0
- data/rails_generators/templates/public/javascripts/jquery-1.4.2.min.js +154 -0
- data/rails_generators/templates/public/javascripts/jquery.autocomplete.pack.js +13 -0
- data/rails_generators/templates/public/javascripts/jquery.blockUI.js +486 -0
- data/rails_generators/templates/public/javascripts/jquery.fancybox-1.3.1.js +1077 -0
- data/rails_generators/templates/public/javascripts/re_job_index.js +75 -0
- data/rails_generators/templates/public/javascripts/re_pipeline_change.js +85 -96
- data/rails_generators/templates/public/javascripts/re_pipeline_index.js +23 -7
- data/rails_generators/templates/public/javascripts/re_pipeline_index_jobs.js +10 -0
- data/rails_generators/templates/public/javascripts/re_pipeline_new.js +15 -19
- data/rails_generators/templates/public/javascripts/re_pipeline_show_jobs.js +11 -0
- data/rails_generators/templates/public/javascripts/re_view.js +132 -0
- data/rails_generators/templates/public/stylesheets/blueprint/ie.css +35 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/icons/cross.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/icons/key.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/icons/tick.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/readme.txt +32 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/screen.css +97 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/fancy-type/readme.txt +14 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/fancy-type/screen.css +71 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/doc.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/email.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/external.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/feed.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/im.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/pdf.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/visited.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/icons/xls.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/readme.txt +18 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/link-icons/screen.css +40 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/rtl/readme.txt +10 -0
- data/rails_generators/templates/public/stylesheets/blueprint/plugins/rtl/screen.css +110 -0
- data/rails_generators/templates/public/stylesheets/blueprint/print.css +29 -0
- data/rails_generators/templates/public/stylesheets/blueprint/screen.css +258 -0
- data/rails_generators/templates/public/stylesheets/blueprint/src/forms.css +65 -0
- data/rails_generators/templates/public/stylesheets/blueprint/src/grid.css +280 -0
- data/rails_generators/templates/public/stylesheets/blueprint/src/grid.png +0 -0
- data/rails_generators/templates/public/stylesheets/blueprint/src/ie.css +76 -0
- data/rails_generators/templates/public/stylesheets/blueprint/src/print.css +85 -0
- data/rails_generators/templates/public/stylesheets/blueprint/src/reset.css +45 -0
- data/rails_generators/templates/public/stylesheets/blueprint/src/typography.css +106 -0
- data/rails_generators/templates/public/stylesheets/fancybox/blank.gif +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_close.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_loading.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_nav_left.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_nav_right.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_e.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_n.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_ne.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_nw.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_s.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_se.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_sw.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_shadow_w.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_title_left.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_title_main.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_title_over.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancy_title_right.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancybox-x.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancybox-y.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/fancybox.png +0 -0
- data/rails_generators/templates/public/stylesheets/fancybox/jquery.fancybox-1.3.1.css +363 -0
- data/rails_generators/templates/public/stylesheets/jquery.autocomplete.css +53 -0
- data/rails_generators/templates/public/stylesheets/re_view.css +131 -0
- data/rails_generators/templates/public/stylesheets/re_view_box.css +119 -0
- data/rails_generators/templates/public/stylesheets/{re_pipeline → re_view_box}/accept.png +0 -0
- data/rails_generators/templates/public/stylesheets/{re_pipeline → re_view_box}/exclamation.png +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_box/shadowbox.jpg +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_box/shadowbox.png +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_box/whitebox.jpg +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button.css +118 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/checked-off.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/checked-on.gif +0 -0
- data/rails_generators/templates/public/{images/re_rule_class/add-18.png → stylesheets/re_view_button/icon-add.png} +0 -0
- data/rails_generators/templates/public/{images/re_pipeline/destroy-18.png → stylesheets/re_view_button/icon-delete.png} +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-blue-left.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-blue-right.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-gray-left.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-gray-right.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-green-left.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-green-right.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-orange-left.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-orange-right.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-red-left.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_button/oval-red-right.gif +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_error.css +60 -0
- data/rails_generators/templates/public/{images/re_job/error-18.png → stylesheets/re_view_error/re-alert-close.png} +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_form.css +120 -0
- data/rails_generators/templates/public/stylesheets/re_view_navigate.css +46 -0
- data/rails_generators/templates/public/stylesheets/re_view_navigate/breadcrumb.png +0 -0
- data/rails_generators/templates/public/stylesheets/re_view_table.css +137 -0
- data/rails_generators/templates/public/stylesheets/rules_engine.css +520 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/error-14.png +0 -0
- data/rails_generators/templates/public/{images/re_pipeline/__destroy-18.png → stylesheets/rules_engine/re_job/error-18.png} +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/error-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/error-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/info-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/info-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/info-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/info-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/list-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/list-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/list-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/list-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/loadingAnimation.gif +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-disabled-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-disabled-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-disabled-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-disabled-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-enabled-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-enabled-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-enabled-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/next-enabled-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-disabled-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-disabled-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-disabled-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-disabled-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-enabled-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-enabled-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-enabled-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/prev-enabled-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/success-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/success-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/success-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_job/success-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/activate-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/activate-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/activate-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/activate-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/alert-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/alert-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/alert-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/alert-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/change-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/change-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/change-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/change-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/changed-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/changed-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/changed-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/changed-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/current-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/current-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/current-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/current-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/deactivate-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/deactivate-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/deactivate-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/deactivate-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/destroy-14.png +0 -0
- data/rails_generators/templates/public/{images/re_rule → stylesheets/rules_engine/re_pipeline}/destroy-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/destroy-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/destroy-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/draft-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/draft-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/draft-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/draft-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/edit-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/edit-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/edit-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/edit-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-down.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/list-right.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/new-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/new-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/new-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/new-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/revert-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/revert-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/revert-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/revert-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/show-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/show-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/show-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/show-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/verify-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/verify-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/verify-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_pipeline/verify-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/destroy-14.png +0 -0
- data/rails_generators/templates/public/stylesheets/rules_engine/re_rule/destroy-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/destroy-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/destroy-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/edit-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/edit-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/edit-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/edit-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-off-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-off-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-off-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-down-off-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-off-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-off-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-off-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/move-up-off-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-change-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-change-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-change-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-change-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-show-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-show-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-show-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/next-show-48.png +0 -0
- data/rails_generators/templates/public/{images/re_rule/goto-pipeline-14.png → stylesheets/rules_engine/re_rule/start-pipeline-14.png} +0 -0
- data/rails_generators/templates/public/{images/re_rule/goto-pipeline-18.png → stylesheets/rules_engine/re_rule/start-pipeline-18.png} +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-failure-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-failure-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-failure-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-failure-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-success-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-success-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-success-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/stop-success-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/valid-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/valid-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/valid-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/valid-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/verify-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/verify-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/verify-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule/verify-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/add-14.png +0 -0
- data/rails_generators/templates/public/stylesheets/rules_engine/re_rule_class/add-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/add-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/add-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/help-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/help-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/help-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/help-48.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/list-down.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/list-right.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/new-14.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/new-18.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/new-25.png +0 -0
- data/rails_generators/templates/public/{images → stylesheets/rules_engine}/re_rule_class/new-48.png +0 -0
- data/rails_generators/templates/spec/controllers/re_jobs_controller_spec.rb +50 -0
- data/rails_generators/templates/spec/controllers/re_pipeline_jobs_controller_spec.rb +37 -0
- data/rails_generators/templates/spec/controllers/re_pipelines_controller_spec.rb +423 -83
- data/rails_generators/templates/spec/controllers/re_rules_controller_spec.rb +390 -0
- data/rails_generators/templates/spec/helpers/re_pipeline_helper_spec.rb +29 -0
- data/rails_generators/templates/spec/lib/rules/complex_rule_spec.rb +336 -0
- data/rails_generators/templates/spec/lib/rules/simple_rule_spec.rb +168 -0
- data/rails_generators/templates/spec/models/re_job_audit_spec.rb +1 -2
- data/rails_generators/templates/spec/models/re_job_spec.rb +157 -1
- data/rails_generators/templates/spec/models/re_pipeline_activated_observer_spec.rb +28 -0
- data/rails_generators/templates/spec/models/re_pipeline_activated_spec.rb +65 -0
- data/rails_generators/templates/spec/models/re_pipeline_base_spec.rb +37 -30
- data/rails_generators/templates/spec/models/re_pipeline_spec.rb +33 -1
- data/rails_generators/templates/spec/models/re_rule_expected_outcome_spec.rb +73 -0
- data/rails_generators/templates/spec/models/re_rule_spec.rb +266 -68
- data/rails_generators/templates/spec/support/rules_engine_macros.rb +23 -0
- data/spec/railsenv/app/controllers/application_controller.rb +10 -0
- data/spec/railsenv/app/rules/mock_rule.rb +11 -0
- data/spec/railsenv/config/boot.rb +110 -0
- data/spec/railsenv/config/database.yml +22 -0
- data/spec/railsenv/config/environment.rb +41 -0
- data/spec/railsenv/config/environments/development.rb +17 -0
- data/spec/railsenv/config/environments/production.rb +28 -0
- data/spec/railsenv/config/environments/test.rb +28 -0
- data/spec/railsenv/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/railsenv/config/initializers/inflections.rb +10 -0
- data/spec/railsenv/config/initializers/mime_types.rb +5 -0
- data/spec/railsenv/config/initializers/new_rails_defaults.rb +19 -0
- data/spec/railsenv/config/initializers/session_store.rb +15 -0
- data/spec/railsenv/config/locales/en.yml +5 -0
- data/spec/railsenv/config/routes.rb +43 -0
- data/spec/railsenv/db/test.sqlite3 +1 -0
- data/spec/railsenv/log/debug.log +1 -0
- data/spec/railsenv/log/test.log +1 -0
- data/spec/rcov.opts +3 -0
- data/spec/rules_engine/cache_spec.rb +18 -0
- data/spec/rules_engine/discovery_spec.rb +32 -0
- data/spec/rules_engine/job_spec.rb +266 -0
- data/spec/rules_engine/rule_spec.rb +76 -0
- data/spec/rules_engine_view/alerts_spec.rb +142 -0
- data/spec/rules_engine_view/boxes_spec.rb +33 -0
- data/spec/rules_engine_view/buttons_spec.rb +123 -0
- data/spec/rules_engine_view/defer_spec.rb +50 -0
- data/spec/rules_engine_view/form_builder_fields_spec.rb +161 -0
- data/spec/rules_engine_view/form_builder_spec.rb +17 -0
- data/spec/rules_engine_view/form_fields_spec.rb +180 -0
- data/spec/rules_engine_view/form_styles_spec.rb +254 -0
- data/spec/rules_engine_view/model_loader_spec.rb +177 -0
- data/spec/rules_engine_view/navigate_spec.rb +55 -0
- data/spec/spec.opts +4 -1
- data/spec/spec_helper.rb +16 -4
- metadata +374 -213
- data/README.rdoc +0 -17
- data/lib/rules_engine/job_runner.rb +0 -115
- data/rails_generators/USAGE +0 -68
- data/rails_generators/blacklist_word.yml +0 -6
- data/rails_generators/blacklist_word_manifest.rb +0 -26
- data/rails_generators/generator.yml +0 -58
- data/rails_generators/generator_manifest.rb +0 -282
- data/rails_generators/simple.yml +0 -6
- data/rails_generators/simple_manifest.rb +0 -21
- data/rails_generators/template_manifest.rb +0 -13
- data/rails_generators/templates/app/models/re_rule_outcome.rb +0 -40
- data/rails_generators/templates/app/rules/blacklist_word.rb +0 -89
- data/rails_generators/templates/app/rules/simple.rb +0 -44
- data/rails_generators/templates/app/rules/template.rb +0 -51
- data/rails_generators/templates/app/views/layouts/_blockUI.html.erb +0 -3
- data/rails_generators/templates/app/views/re_jobs/_index.html.erb +0 -66
- data/rails_generators/templates/app/views/re_pipeline_jobs/_empty.html.erb +0 -11
- data/rails_generators/templates/app/views/re_pipeline_jobs/_index.html.erb +0 -41
- data/rails_generators/templates/app/views/re_pipelines/_show_actions.html.erb +0 -3
- data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_edit.html.erb +0 -7
- data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_help.html.erb +0 -2
- data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_new.html.erb +0 -7
- data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_pipeline.html.erb +0 -18
- data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_script.html.erb +0 -26
- data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_title.html.erb +0 -6
- data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_word.html.erb +0 -12
- data/rails_generators/templates/app/views/re_rule_definitions/blacklist_word/_words.html.erb +0 -16
- data/rails_generators/templates/app/views/re_rule_definitions/simple/_edit.html.erb +0 -6
- data/rails_generators/templates/app/views/re_rule_definitions/simple/_help.html.erb +0 -2
- data/rails_generators/templates/app/views/re_rule_definitions/simple/_new.html.erb +0 -6
- data/rails_generators/templates/app/views/re_rule_definitions/template/_edit.html.erb +0 -6
- data/rails_generators/templates/app/views/re_rule_definitions/template/_help.html.erb +0 -2
- data/rails_generators/templates/app/views/re_rule_definitions/template/_new.html.erb +0 -6
- data/rails_generators/templates/lib/tasks/re_runner.rake +0 -12
- data/rails_generators/templates/public/images/re_job/goto-16.png +0 -0
- data/rails_generators/templates/public/images/re_pipeline/__destroy-14.png +0 -0
- data/rails_generators/templates/public/images/re_pipeline/__destroy-25.png +0 -0
- data/rails_generators/templates/public/images/re_pipeline/__destroy-48.png +0 -0
- data/rails_generators/templates/public/images/re_rule/__destroy-14.png +0 -0
- data/rails_generators/templates/public/images/re_rule/__destroy-18.png +0 -0
- data/rails_generators/templates/public/images/re_rule/__destroy-25.png +0 -0
- data/rails_generators/templates/public/images/re_rule/__destroy-48.png +0 -0
- data/rails_generators/templates/public/javascripts/re_jobs.js +0 -59
- data/rails_generators/templates/public/javascripts/re_pipeline.js +0 -54
- data/rails_generators/templates/public/javascripts/re_pipeline_jobs.js +0 -61
- data/rails_generators/templates/public/stylesheets/re_pipeline.css +0 -509
- data/rails_generators/templates/spec/models/re_rule_outcome_spec.rb +0 -97
- data/rails_generators/templates/spec/support/blueprint_re_pipelines.rb +0 -11
- data/spec/rules_engine_spec.rb +0 -7
@@ -0,0 +1,30 @@
|
|
1
|
+
class ReRuleExpectedOutcome < ActiveRecord::Base
|
2
|
+
belongs_to :re_rule
|
3
|
+
|
4
|
+
validates_associated :re_rule
|
5
|
+
validates_presence_of :outcome
|
6
|
+
def validate
|
7
|
+
if outcome == RulesEngine::RuleOutcome::OUTCOME_START_PIPELINE && pipeline_code.blank?
|
8
|
+
errors.add(:pipeline_code, "pipeline code required")
|
9
|
+
end
|
10
|
+
end
|
11
|
+
|
12
|
+
def copy! re_rule_expected_outcome
|
13
|
+
self.outcome = re_rule_expected_outcome.outcome
|
14
|
+
self.pipeline_code = re_rule_expected_outcome.pipeline_code
|
15
|
+
self
|
16
|
+
end
|
17
|
+
|
18
|
+
def equals? re_rule_expected_outcome
|
19
|
+
if outcome != re_rule_expected_outcome.outcome
|
20
|
+
return false
|
21
|
+
end
|
22
|
+
|
23
|
+
if outcome == RulesEngine::RuleOutcome::OUTCOME_START_PIPELINE
|
24
|
+
return false unless pipeline_code == re_rule_expected_outcome.pipeline_code
|
25
|
+
#TODO check the pipeline equals the pipeline code
|
26
|
+
end
|
27
|
+
|
28
|
+
return true
|
29
|
+
end
|
30
|
+
end
|
@@ -0,0 +1,133 @@
|
|
1
|
+
class <%=rule_class%>Rule < RulesEngine::Rule
|
2
|
+
|
3
|
+
attr_reader :words
|
4
|
+
attr_reader :pipeline_action
|
5
|
+
attr_reader :pipeline
|
6
|
+
|
7
|
+
##################################################################
|
8
|
+
# class options
|
9
|
+
self.options =
|
10
|
+
{
|
11
|
+
:group => '<%=rule_class%>',
|
12
|
+
:display_name => '<%=rule_class%>',
|
13
|
+
:help_partial => '/re_rule_definitions/<%=rule_name%>_rule/help',
|
14
|
+
:new_partial => '/re_rule_definitions/<%=rule_name%>_rule/new',
|
15
|
+
:edit_partial => '/re_rule_definitions/<%=rule_name%>_rule/edit'
|
16
|
+
}
|
17
|
+
|
18
|
+
##################################################################
|
19
|
+
# set the rule data
|
20
|
+
def data= data
|
21
|
+
if data.nil?
|
22
|
+
@title = nil
|
23
|
+
@words = nil
|
24
|
+
@pipeline_action = 'continue'
|
25
|
+
@pipeline = nil
|
26
|
+
else
|
27
|
+
@title, @words, @pipeline_action, @pipeline = ActiveSupport::JSON.decode(data)
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
##################################################################
|
32
|
+
# get the rule attributes
|
33
|
+
def title
|
34
|
+
@title
|
35
|
+
end
|
36
|
+
|
37
|
+
def summary
|
38
|
+
"Match the #{words.size == 1 ? 'word' : 'words'} #{words.join(', ')}"
|
39
|
+
end
|
40
|
+
|
41
|
+
def data
|
42
|
+
[title, words, pipeline_action, pipeline].to_json
|
43
|
+
end
|
44
|
+
|
45
|
+
def expected_outcomes
|
46
|
+
case pipeline_action
|
47
|
+
when 'next'
|
48
|
+
[:outcome => RulesEngine::RuleOutcome::OUTCOME_NEXT]
|
49
|
+
when 'stop_success'
|
50
|
+
[:outcome => RulesEngine::RuleOutcome::OUTCOME_STOP_SUCCESS]
|
51
|
+
when 'stop_failure'
|
52
|
+
[:outcome => RulesEngine::RuleOutcome::OUTCOME_STOP_FAILURE]
|
53
|
+
when 'start_pipeline'
|
54
|
+
[:outcome => RulesEngine::RuleOutcome::OUTCOME_START_PIPELINE, :pipeline_code => pipeline]
|
55
|
+
else
|
56
|
+
[:outcome => RulesEngine::RuleOutcome::OUTCOME_NEXT]
|
57
|
+
end
|
58
|
+
end
|
59
|
+
|
60
|
+
##################################################################
|
61
|
+
# set the rule attributes
|
62
|
+
def attributes=(params)
|
63
|
+
param_hash = params.symbolize_keys
|
64
|
+
|
65
|
+
@title = param_hash[:<%=rule_name%>_title]
|
66
|
+
|
67
|
+
@words = []
|
68
|
+
return if param_hash[:<%=rule_name%>_words].nil?
|
69
|
+
param_hash[:<%=rule_name%>_words].each do |key, values|
|
70
|
+
if values.is_a?(Hash)
|
71
|
+
word_hash = values.symbolize_keys
|
72
|
+
@words << word_hash[:word].downcase unless word_hash[:word].blank? || word_hash[:_delete] == '1'
|
73
|
+
end
|
74
|
+
end
|
75
|
+
|
76
|
+
@pipeline_action = param_hash[:<%=rule_name%>_pipeline_action] || 'continue'
|
77
|
+
@pipeline = param_hash[:<%=rule_name%>_pipeline] || ''
|
78
|
+
end
|
79
|
+
|
80
|
+
##################################################################
|
81
|
+
# validation and errors
|
82
|
+
def valid?
|
83
|
+
@errors = {}
|
84
|
+
@errors[:<%=rule_name%>_words] = "At least one word must be defined" if words.nil? || words.empty?
|
85
|
+
@errors[:<%=rule_name%>_title] = "Title required" if title.blank?
|
86
|
+
@errors[:<%=rule_name%>_pipeline] = "Pipeline required" if pipeline_action == 'start_pipeline' && pipeline.blank?
|
87
|
+
return @errors.empty?
|
88
|
+
end
|
89
|
+
|
90
|
+
##################################################################
|
91
|
+
# callbacks when the rule is added and removed from a pipeline
|
92
|
+
def after_add_to_pipeline(re_pipeline_id, re_rule_id)
|
93
|
+
end
|
94
|
+
|
95
|
+
def before_remove_from_pipeline(re_pipeline_id, re_rule_id)
|
96
|
+
end
|
97
|
+
|
98
|
+
##################################################################
|
99
|
+
# execute the rule
|
100
|
+
# if a match is found procees to the expected outcome
|
101
|
+
# it gets the data parameter :sentence
|
102
|
+
# it sets the data parameter :match
|
103
|
+
def process(job, data)
|
104
|
+
sentence = data[:sentence] || data["sentence"]
|
105
|
+
return nil if sentence.blank?
|
106
|
+
|
107
|
+
words.each do |word|
|
108
|
+
if /#{word}/i =~ sentence
|
109
|
+
job.audit("Match Found #{word}", ReJobAudit::AUDIT_INFO)
|
110
|
+
data[:match] = word
|
111
|
+
|
112
|
+
rule_outcome = RulesEngine::RuleOutcome.new
|
113
|
+
|
114
|
+
case pipeline_action
|
115
|
+
when 'stop_success'
|
116
|
+
rule_outcome.outcome = RulesEngine::RuleOutcome::OUTCOME_STOP_SUCCESS
|
117
|
+
when 'stop_failure'
|
118
|
+
rule_outcome.outcome = RulesEngine::RuleOutcome::OUTCOME_STOP_FAILURE
|
119
|
+
when 'start_pipeline'
|
120
|
+
rule_outcome.outcome = RulesEngine::RuleOutcome::OUTCOME_START_PIPELINE
|
121
|
+
rule_outcome.pipeline_code = pipeline
|
122
|
+
else #'next'
|
123
|
+
rule_outcome.outcome = RulesEngine::RuleOutcome::OUTCOME_NEXT
|
124
|
+
end
|
125
|
+
|
126
|
+
return rule_outcome
|
127
|
+
end
|
128
|
+
end
|
129
|
+
|
130
|
+
nil
|
131
|
+
end
|
132
|
+
|
133
|
+
end
|
@@ -0,0 +1,77 @@
|
|
1
|
+
class <%=rule_class%>Rule < RulesEngine::Rule
|
2
|
+
|
3
|
+
attr_reader :description
|
4
|
+
##################################################################
|
5
|
+
# class options
|
6
|
+
self.options =
|
7
|
+
{
|
8
|
+
:group => '<%=rule_class%>',
|
9
|
+
:display_name => '<%=rule_class%>',
|
10
|
+
:help_partial => '/re_rule_definitions/<%=rule_name%>_rule/help',
|
11
|
+
:new_partial => '/re_rule_definitions/<%=rule_name%>_rule/new',
|
12
|
+
:edit_partial => '/re_rule_definitions/<%=rule_name%>_rule/edit'
|
13
|
+
}
|
14
|
+
|
15
|
+
##################################################################
|
16
|
+
# set the rule data
|
17
|
+
def data= data
|
18
|
+
if data.nil?
|
19
|
+
@title = nil
|
20
|
+
@description = nil
|
21
|
+
else
|
22
|
+
@title, @description = ActiveSupport::JSON.decode(data)
|
23
|
+
end
|
24
|
+
end
|
25
|
+
|
26
|
+
##################################################################
|
27
|
+
# get the rule attributes
|
28
|
+
def title
|
29
|
+
@title
|
30
|
+
end
|
31
|
+
|
32
|
+
def summary
|
33
|
+
description
|
34
|
+
end
|
35
|
+
|
36
|
+
def data
|
37
|
+
[title, description].to_json
|
38
|
+
end
|
39
|
+
|
40
|
+
def expected_outcomes
|
41
|
+
[:outcome => RulesEngine::RuleOutcome::OUTCOME_NEXT]
|
42
|
+
end
|
43
|
+
|
44
|
+
##################################################################
|
45
|
+
# set the rule attributes
|
46
|
+
def attributes=(params)
|
47
|
+
param_hash = params.symbolize_keys
|
48
|
+
|
49
|
+
@title = param_hash[:<%=rule_name%>_title]
|
50
|
+
@description = param_hash[:<%=rule_name%>_description]
|
51
|
+
end
|
52
|
+
|
53
|
+
##################################################################
|
54
|
+
# validation and errors
|
55
|
+
def valid?
|
56
|
+
@errors = {}
|
57
|
+
@errors[:<%=rule_name%>_title] = "Title required" if title.blank?
|
58
|
+
@errors[:<%=rule_name%>_description] = "Description required" if description.blank?
|
59
|
+
return @errors.empty?
|
60
|
+
end
|
61
|
+
|
62
|
+
##################################################################
|
63
|
+
# callbacks when the rule is added and removed from a pipeline
|
64
|
+
def after_add_to_pipeline(re_pipeline_id, re_rule_id)
|
65
|
+
end
|
66
|
+
|
67
|
+
def before_remove_from_pipeline(re_pipeline_id, re_rule_id)
|
68
|
+
end
|
69
|
+
|
70
|
+
##################################################################
|
71
|
+
# execute the rule
|
72
|
+
# this rule does nothing
|
73
|
+
def process(job, data)
|
74
|
+
# job.audit("<%=rule_class%>", ReJobAudit::AUDIT_INFO)
|
75
|
+
return nil
|
76
|
+
end
|
77
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
|
2
|
+
<html xmlns="http://www.w3.org/1999/xhtml">
|
3
|
+
<head>
|
4
|
+
<meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" />
|
5
|
+
<title> <%= (page_title = yield :defer_page_title) ? page_title : controller.controller_name.humanize %> </title>
|
6
|
+
|
7
|
+
<link rel="stylesheet" href="/stylesheets/blueprint/screen.css" type="text/css" media="screen, projection">
|
8
|
+
<link rel="stylesheet" href="/stylesheets/blueprint/print.css" type="text/css" media="print">
|
9
|
+
<!--[if lt IE 8]>
|
10
|
+
<link rel="stylesheet" href="/stylesheets/blueprint/ie.css" type="text/css" media="screen, projection">
|
11
|
+
<![endif]-->
|
12
|
+
|
13
|
+
<%= javascript_include_tag 'jquery-1.4.2.min', 'jquery.blockUI', 'jquery.autocomplete.pack', 'jquery.fancybox-1.3.1',
|
14
|
+
're_view',
|
15
|
+
#'application',
|
16
|
+
:cache => true %>
|
17
|
+
|
18
|
+
<%= stylesheet_link_tag 're_view', 're_view_form', 're_view_button',
|
19
|
+
're_view_error', 're_view_box', 're_view_navigate', 're_view_table',
|
20
|
+
'rules_engine',
|
21
|
+
'jquery.autocomplete', 'fancybox/jquery.fancybox-1.3.1',
|
22
|
+
#'application',
|
23
|
+
:cache => true %>
|
24
|
+
|
25
|
+
<%= yield :defer_re_javascript_include %>
|
26
|
+
</head>
|
27
|
+
<body>
|
28
|
+
<div class="container">
|
29
|
+
<%#= render :partial => '/layouts/header' %>
|
30
|
+
|
31
|
+
<%= yield :defer_re_breadcrumbs %>
|
32
|
+
<%= re_alert %>
|
33
|
+
|
34
|
+
<%= yield %>
|
35
|
+
|
36
|
+
<div class="clear top-10"></div>
|
37
|
+
<%#= render :partial => '/layouts/footer' %>
|
38
|
+
</div>
|
39
|
+
</body>
|
40
|
+
</html>
|
@@ -1,9 +1,12 @@
|
|
1
1
|
<% local_hide = local_assigns[:hide] && hide %>
|
2
2
|
|
3
|
-
<div id="
|
4
|
-
<div class="redbox-header"><h4 class="white">No
|
5
|
-
<div class="redbox
|
6
|
-
<h4 class="left-5">
|
3
|
+
<div id="re_job_list_empty" style="<%= local_hide ? 'display:none' : '' %>">
|
4
|
+
<!-- <div class="re-redbox-header"><h4 class="white">No jobs have been run</h4></div> -->
|
5
|
+
<div class="re-redbox">
|
6
|
+
<h4 class="left-5 red">
|
7
|
+
No Jobs have been run.
|
8
|
+
</h4>
|
9
|
+
|
7
10
|
</div>
|
8
11
|
<div class="clear"></div>
|
9
12
|
</div>
|
@@ -0,0 +1,79 @@
|
|
1
|
+
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="data" id="re_job_table">
|
2
|
+
<tr>
|
3
|
+
<th class="" width="110px">
|
4
|
+
<span class="left-5">
|
5
|
+
Job Id
|
6
|
+
</span>
|
7
|
+
</th>
|
8
|
+
<th class="text-right" width="180px">
|
9
|
+
<span class="right-20">
|
10
|
+
Start Time
|
11
|
+
</span>
|
12
|
+
</th>
|
13
|
+
<th class="text-right" width="180px">
|
14
|
+
<span class="right-20">
|
15
|
+
Finish Time
|
16
|
+
</span>
|
17
|
+
</th>
|
18
|
+
<th>
|
19
|
+
<span class="left-5">
|
20
|
+
Data
|
21
|
+
</span>
|
22
|
+
</th>
|
23
|
+
</tr>
|
24
|
+
<% @re_jobs.each do | re_job | %>
|
25
|
+
<tr class="<%= cycle('', 'odd') %>">
|
26
|
+
<td>
|
27
|
+
<%
|
28
|
+
case re_job['job_status'].to_i
|
29
|
+
when ReJob::JOB_STATUS_NONE, ReJob::JOB_STATUS_RUNNING
|
30
|
+
job_class = 'job-running'
|
31
|
+
when ReJob::JOB_STATUS_SUCCESS
|
32
|
+
job_class = 're-job-success'
|
33
|
+
else
|
34
|
+
job_class = 're-job-error'
|
35
|
+
end
|
36
|
+
%>
|
37
|
+
<a class="re-job-detail" href='#<%= re_job['job_id'] %>'>
|
38
|
+
<div class="<%= job_class %>">
|
39
|
+
<%= re_job['job_id'] %>
|
40
|
+
</div>
|
41
|
+
</a>
|
42
|
+
</td>
|
43
|
+
<td class="text-right">
|
44
|
+
<a class="re-job-detail" href='#<%= re_job['job_id'] %>'>
|
45
|
+
<div>
|
46
|
+
<%= re_job['start_date'].strftime('%d %b %Y - %H:%M:%S') %>
|
47
|
+
</div>
|
48
|
+
</a>
|
49
|
+
</td>
|
50
|
+
<td class="text-right">
|
51
|
+
<a class="re-job-detail" href='#<%= re_job['job_id'] %>'>
|
52
|
+
<div>
|
53
|
+
<%= re_job['end_date'] ? re_job['end_date'].strftime('%d %b %Y - %H:%M:%S') : ' ' %>
|
54
|
+
</div>
|
55
|
+
</a>
|
56
|
+
</td>
|
57
|
+
<td>
|
58
|
+
<a class="re-job-detail" href='#<%= re_job['job_id'] %>'>
|
59
|
+
<div>
|
60
|
+
<span class="left-5">
|
61
|
+
<%= re_job['end_data'] || re_job['start_data'] %>
|
62
|
+
</span>
|
63
|
+
</div>
|
64
|
+
</a>
|
65
|
+
</td>
|
66
|
+
</tr>
|
67
|
+
<% end %>
|
68
|
+
<tr class="<%= cycle('', 'odd') %>">
|
69
|
+
<td colspan = "4">
|
70
|
+
<% if @re_pipeline.nil? %>
|
71
|
+
<a class="re-job-page-next-<%= @re_jobs.next_page ? 'enabled' : 'disabled' %>" href='<%= re_jobs_path(:page => (@re_jobs.next_page || '1')) %>'></a>
|
72
|
+
<a class="re-job-page-prev-<%= @re_jobs.previous_page ? 'enabled' : 'disabled' %>" href='<%= re_jobs_path(:page => (@re_jobs.previous_page || '1'))%>'></a>
|
73
|
+
<% else %>
|
74
|
+
<a class="re-job-page-next-<%= @re_jobs.next_page ? 'enabled' : 'disabled' %>" href='<%= re_pipeline_re_jobs_path(@re_pipeline, :page => (@re_jobs.next_page || '1')) %>'></a>
|
75
|
+
<a class="re-job-page-prev-<%= @re_jobs.previous_page ? 'enabled' : 'disabled' %>" href='<%= re_pipeline_re_jobs_path(@re_pipeline, :page => (@re_jobs.previous_page || '1'))%>'></a>
|
76
|
+
<% end %>
|
77
|
+
</td>
|
78
|
+
</tr>
|
79
|
+
</table>
|
@@ -0,0 +1,42 @@
|
|
1
|
+
<div class="right-10">
|
2
|
+
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="data" id="re_job_table">
|
3
|
+
<% @re_jobs.each do | re_job | %>
|
4
|
+
<tr class="<%= cycle('', 'odd') %>">
|
5
|
+
<td class="no-border-right">
|
6
|
+
<%
|
7
|
+
job_date = re_job['start_date']
|
8
|
+
case re_job['job_status'].to_i
|
9
|
+
when ReJob::JOB_STATUS_NONE, ReJob::JOB_STATUS_RUNNING
|
10
|
+
job_class = 'job-running'
|
11
|
+
when ReJob::JOB_STATUS_SUCCESS
|
12
|
+
job_class = 're-job-success'
|
13
|
+
else
|
14
|
+
job_class = 're-job-error'
|
15
|
+
end
|
16
|
+
%>
|
17
|
+
<a class="re-job-detail" href='#<%= re_job['job_id'] %>'>
|
18
|
+
<div class="<%= job_class %>">
|
19
|
+
<%= re_job['job_id'] %>
|
20
|
+
</div>
|
21
|
+
</a>
|
22
|
+
</td>
|
23
|
+
<td class="no-border-left text-right">
|
24
|
+
<a class="re-job-detail" href='#<%= re_job['job_id'] %>'>
|
25
|
+
<div>
|
26
|
+
<%= job_date.strftime('%d %b %Y - %H:%M:%S') %>
|
27
|
+
</div>
|
28
|
+
</a>
|
29
|
+
</td>
|
30
|
+
</tr>
|
31
|
+
<% end %>
|
32
|
+
|
33
|
+
<tr class="<%= cycle('', 'odd') %>">
|
34
|
+
<td colspan = "2">
|
35
|
+
<a class="re-job-page-next-<%= @re_jobs.next_page ? 'enabled' : 'disabled' %>" href='#<%= @re_jobs.next_page || '1' %>'></a>
|
36
|
+
<a class="re-job-page-prev-<%= @re_jobs.previous_page ? 'enabled' : 'disabled' %>" href='#<%= @re_jobs.previous_page || '1' %>'></a>
|
37
|
+
|
38
|
+
</td>
|
39
|
+
</tr>
|
40
|
+
</table>
|
41
|
+
|
42
|
+
</div>
|
@@ -1,9 +1,9 @@
|
|
1
|
-
<div class="job-show">
|
1
|
+
<div class="re-job-show span-18">
|
2
2
|
|
3
3
|
<div class="float-left">
|
4
|
-
<
|
4
|
+
<h4>
|
5
5
|
<span class="blue">Job Id :</span> <%= @re_job.id %>
|
6
|
-
</
|
6
|
+
</h4>
|
7
7
|
</div>
|
8
8
|
<div class="float-right">
|
9
9
|
<h4>
|
@@ -11,15 +11,17 @@
|
|
11
11
|
</h4>
|
12
12
|
</div>
|
13
13
|
<div class="clear"></div>
|
14
|
-
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="data" id="
|
14
|
+
<table width="100%" border="0" cellpadding="0" cellspacing="0" class="data" id="re_job_audit_table">
|
15
15
|
<% @re_job_audits.each do | re_job_audit | %>
|
16
16
|
<tr class="<%= cycle('', 'odd') %>">
|
17
17
|
<td width="150px">
|
18
18
|
<%
|
19
|
-
if re_job_audit.
|
20
|
-
job_class = 'job-
|
19
|
+
if re_job_audit.audit_code == ReJobAudit::AUDIT_INFO
|
20
|
+
job_class = 're-job-info'
|
21
|
+
elsif re_job_audit.audit_code == ReJobAudit::AUDIT_FAILURE
|
22
|
+
job_class = 're-job-error'
|
21
23
|
else
|
22
|
-
job_class = 'job-
|
24
|
+
job_class = 're-job-success'
|
23
25
|
end
|
24
26
|
%>
|
25
27
|
<div class="<%= job_class %>">
|
@@ -27,17 +29,10 @@
|
|
27
29
|
</div>
|
28
30
|
</td>
|
29
31
|
<td>
|
30
|
-
<%= re_job_audit.
|
32
|
+
<%= re_job_audit.audit_message%>
|
31
33
|
</td>
|
32
|
-
<td class = "text-right">
|
33
|
-
<div class = "right-5">
|
34
|
-
<% if re_job_audit.audit_code == ReJobAudit::AUDIT_PIPELINE_START %>
|
35
|
-
<%= link_to(re_job_audit.re_pipeline.code, re_pipeline_path(re_job_audit.re_pipeline_id), :class => "job-goto") %>
|
36
|
-
<% end %>
|
37
|
-
</div>
|
38
|
-
</td>
|
39
34
|
</tr>
|
40
35
|
<% end %>
|
41
|
-
|
42
36
|
</table>
|
37
|
+
<%= re_button_link_red('Close', re_jobs_path, :id => "re_jobs_close") %>
|
43
38
|
</div>
|