rules_engine 0.1.6 → 0.1.7
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/VERSION +1 -1
 - data/lib/rules_engine/process/auditor/db_auditor.rb +1 -0
 - data/lib/rules_engine/rule/outcome.rb +1 -0
 - data/rails_generators/manifests/complex.rb +4 -1
 - data/rails_generators/manifests/complex.yml +0 -1
 - data/rails_generators/manifests/rules_engine.rb +15 -2
 - data/rails_generators/manifests/rules_engine.yml +0 -2
 - data/rails_generators/manifests/simple.rb +4 -1
 - data/rails_generators/manifests/simple.yml +0 -1
 - data/rails_generators/templates/app/controllers/re_plan_workflows_controller.rb +30 -5
 - data/rails_generators/templates/app/controllers/re_plans_controller.rb +26 -2
 - data/rails_generators/templates/app/controllers/re_workflows_controller.rb +27 -2
 - data/rails_generators/templates/app/models/re_rule.rb +0 -30
 - data/rails_generators/templates/app/rules/complex.rb +3 -3
 - data/rails_generators/templates/app/views/re_plan_workflows/change.html.erb +6 -2
 - data/rails_generators/templates/app/views/re_plan_workflows/copy.html.erb +12 -0
 - data/rails_generators/templates/app/views/re_plan_workflows/copy.js.erb +8 -0
 - data/rails_generators/templates/app/views/re_plan_workflows/new.js.erb +5 -1
 - data/rails_generators/templates/app/views/re_plan_workflows/show.html.erb +3 -2
 - data/rails_generators/templates/app/views/re_plans/_copy.html.erb +18 -0
 - data/rails_generators/templates/app/views/re_plans/_preview.html.erb +1 -1
 - data/rails_generators/templates/app/views/re_plans/_workflow_preview.html.erb +1 -3
 - data/rails_generators/templates/app/views/re_plans/change.html.erb +6 -0
 - data/rails_generators/templates/app/views/re_plans/copy.html.erb +11 -0
 - data/rails_generators/templates/app/views/re_plans/copy.js.erb +9 -0
 - data/rails_generators/templates/app/views/re_plans/new.js.erb +4 -1
 - data/rails_generators/templates/app/views/re_plans/show.html.erb +1 -1
 - data/rails_generators/templates/app/views/re_rule_definitions/complex/_form.html.erb +2 -2
 - data/rails_generators/templates/app/views/re_rule_definitions/simple/_form.html.erb +1 -1
 - data/rails_generators/templates/app/views/re_workflows/_copy.html.erb +21 -0
 - data/rails_generators/templates/app/views/re_workflows/_rule_change.html.erb +11 -14
 - data/rails_generators/templates/app/views/re_workflows/_rule_preview.html.erb +14 -17
 - data/rails_generators/templates/app/views/re_workflows/_rule_show.html.erb +13 -16
 - data/rails_generators/templates/app/views/re_workflows/_show.html.erb +1 -3
 - data/rails_generators/templates/app/views/re_workflows/change.html.erb +5 -0
 - data/rails_generators/templates/app/views/re_workflows/copy.html.erb +11 -0
 - data/rails_generators/templates/app/views/re_workflows/copy.js.erb +8 -0
 - data/rails_generators/templates/app/views/re_workflows/index.html.erb +1 -1
 - data/rails_generators/templates/app/views/re_workflows/preview.html.erb +1 -0
 - data/rails_generators/templates/app/views/re_workflows/show.html.erb +3 -2
 - data/rails_generators/templates/app/views/re_workflows/update.js.erb +1 -1
 - data/rails_generators/templates/db/migrate/20100308225008_create_rules_engine.rb +0 -13
 - data/rails_generators/templates/doc/README.rules_engine +7 -6
 - data/rails_generators/templates/lib/tasks/rules_engine.rake +2 -2
 - data/rails_generators/templates/public/javascripts/rules_engine/re_plan_change.js +20 -0
 - data/rails_generators/templates/public/javascripts/rules_engine/re_plan_new.js +2 -8
 - data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_add.js +3 -12
 - data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_change.js +23 -4
 - data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_new.js +2 -8
 - data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_show.js +22 -0
 - data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_plan/copy-25.png +0 -0
 - data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/copy-25.png +0 -0
 - data/rails_generators/templates/public/stylesheets/rules_engine/screen.css +52 -1
 - data/rails_generators/templates/spec/lib/rules/complex_spec.rb +46 -41
 - data/rails_generators/templates/spec/lib/rules/simple_spec.rb +41 -35
 - data/rails_generators/templates/spec/models/re_rule_spec.rb +12 -74
 - metadata +15 -6
 - data/rails_generators/templates/app/models/re_rule_expected_outcome.rb +0 -14
 - data/rails_generators/templates/spec/models/re_rule_expected_outcome_spec.rb +0 -29
 
| 
         @@ -144,11 +144,15 @@ describe RulesEngine::Rule::Simple do 
     | 
|
| 
       144 
144 
     | 
    
         
             
                end
         
     | 
| 
       145 
145 
     | 
    
         
             
              end
         
     | 
| 
       146 
146 
     | 
    
         | 
| 
       147 
     | 
    
         
            -
              describe " 
     | 
| 
      
 147 
     | 
    
         
            +
              describe "before a rule is created" do
         
     | 
| 
       148 
148 
     | 
    
         
             
                # xit "There is nothing to do here"
         
     | 
| 
       149 
149 
     | 
    
         
             
              end
         
     | 
| 
       150 
150 
     | 
    
         | 
| 
       151 
     | 
    
         
            -
              describe " 
     | 
| 
      
 151 
     | 
    
         
            +
              describe "before a rule is updated" do
         
     | 
| 
      
 152 
     | 
    
         
            +
                # xit "There is nothing to do here"
         
     | 
| 
      
 153 
     | 
    
         
            +
              end
         
     | 
| 
      
 154 
     | 
    
         
            +
              
         
     | 
| 
      
 155 
     | 
    
         
            +
              describe "before a rule is destroyed" do
         
     | 
| 
       152 
156 
     | 
    
         
             
                # xit "There is nothing to do here"
         
     | 
| 
       153 
157 
     | 
    
         
             
              end
         
     | 
| 
       154 
158 
     | 
    
         | 
| 
         @@ -164,48 +168,50 @@ end 
     | 
|
| 
       164 
168 
     | 
    
         
             
            describe ReWorkflowRulesController, :type => :controller  do
         
     | 
| 
       165 
169 
     | 
    
         
             
              integrate_views
         
     | 
| 
       166 
170 
     | 
    
         | 
| 
       167 
     | 
    
         
            -
               
     | 
| 
       168 
     | 
    
         
            -
             
     | 
| 
      
 171 
     | 
    
         
            +
              describe "RulesEngine::Rule::Simple" do
         
     | 
| 
      
 172 
     | 
    
         
            +
              
         
     | 
| 
      
 173 
     | 
    
         
            +
                before(:each) do
         
     | 
| 
      
 174 
     | 
    
         
            +
                  controller.instance_eval { flash.stub!(:sweep) }
         
     | 
| 
       169 
175 
     | 
    
         | 
| 
       170 
     | 
    
         
            -
             
     | 
| 
      
 176 
     | 
    
         
            +
                  RulesEngine::Discovery.discover!
         
     | 
| 
       171 
177 
     | 
    
         | 
| 
       172 
     | 
    
         
            -
             
     | 
| 
       173 
     | 
    
         
            -
             
     | 
| 
      
 178 
     | 
    
         
            +
                  controller.stub!(:rules_engine_reader_access_required).and_return(true)
         
     | 
| 
      
 179 
     | 
    
         
            +
                  controller.stub!(:rules_engine_editor_access_required).and_return(true)
         
     | 
| 
       174 
180 
     | 
    
         | 
| 
       175 
     | 
    
         
            -
             
     | 
| 
       176 
     | 
    
         
            -
             
     | 
| 
       177 
     | 
    
         
            -
             
     | 
| 
      
 181 
     | 
    
         
            +
                  @re_workflow = ReWorkflow.make
         
     | 
| 
      
 182 
     | 
    
         
            +
                  ReWorkflow.stub!(:find).and_return(@re_workflow)
         
     | 
| 
      
 183 
     | 
    
         
            +
                end  
         
     | 
| 
       178 
184 
     | 
    
         | 
| 
       179 
     | 
    
         
            -
             
     | 
| 
       180 
     | 
    
         
            -
             
     | 
| 
       181 
     | 
    
         
            -
             
     | 
| 
       182 
     | 
    
         
            -
             
     | 
| 
      
 185 
     | 
    
         
            +
                describe "help" do
         
     | 
| 
      
 186 
     | 
    
         
            +
                  it "should assign the <%=rule_name%> rule class" do
         
     | 
| 
      
 187 
     | 
    
         
            +
                    get :help, :rule_class_name => "RulesEngine::Rule::Simple"
         
     | 
| 
      
 188 
     | 
    
         
            +
                    assigns[:rule_class].should == RulesEngine::Rule::Simple
         
     | 
| 
      
 189 
     | 
    
         
            +
                  end
         
     | 
| 
       183 
190 
     | 
    
         
             
                end
         
     | 
| 
       184 
     | 
    
         
            -
              end
         
     | 
| 
       185 
191 
     | 
    
         | 
| 
       186 
     | 
    
         
            -
             
     | 
| 
       187 
     | 
    
         
            -
             
     | 
| 
       188 
     | 
    
         
            -
             
     | 
| 
       189 
     | 
    
         
            -
             
     | 
| 
       190 
     | 
    
         
            -
             
     | 
| 
       191 
     | 
    
         
            -
             
     | 
| 
       192 
     | 
    
         
            -
             
     | 
| 
      
 192 
     | 
    
         
            +
                describe "new" do
         
     | 
| 
      
 193 
     | 
    
         
            +
                  it "show the new form" do
         
     | 
| 
      
 194 
     | 
    
         
            +
                    get :new, :rule_class_name => "RulesEngine::Rule::Simple"
         
     | 
| 
      
 195 
     | 
    
         
            +
                    response.should have_tag("form#re_rule_new_form") do
         
     | 
| 
      
 196 
     | 
    
         
            +
                      with_tag("input#<%=rule_name%>_title")
         
     | 
| 
      
 197 
     | 
    
         
            +
                      with_tag("input#<%=rule_name%>_description")      
         
     | 
| 
      
 198 
     | 
    
         
            +
                    end  
         
     | 
| 
      
 199 
     | 
    
         
            +
                  end
         
     | 
| 
       193 
200 
     | 
    
         
             
                end
         
     | 
| 
       194 
     | 
    
         
            -
              end
         
     | 
| 
       195 
201 
     | 
    
         | 
| 
       196 
     | 
    
         
            -
             
     | 
| 
       197 
     | 
    
         
            -
             
     | 
| 
       198 
     | 
    
         
            -
             
     | 
| 
       199 
     | 
    
         
            -
             
     | 
| 
       200 
     | 
    
         
            -
             
     | 
| 
       201 
     | 
    
         
            -
             
     | 
| 
      
 202 
     | 
    
         
            +
                describe "edit" do
         
     | 
| 
      
 203 
     | 
    
         
            +
                  it "show the edit form" do
         
     | 
| 
      
 204 
     | 
    
         
            +
                    re_rule = ReRule.make(:re_workflow_id => @re_workflow.id, 
         
     | 
| 
      
 205 
     | 
    
         
            +
                                          :rule_class_name => "RulesEngine::Rule::Simple",
         
     | 
| 
      
 206 
     | 
    
         
            +
                                          :data => valid_<%=rule_name%>_rule_data)
         
     | 
| 
      
 207 
     | 
    
         
            +
                    ReRule.stub!(:find).and_return(re_rule)
         
     | 
| 
       202 
208 
     | 
    
         | 
| 
       203 
     | 
    
         
            -
             
     | 
| 
       204 
     | 
    
         
            -
             
     | 
| 
       205 
     | 
    
         
            -
             
     | 
| 
       206 
     | 
    
         
            -
             
     | 
| 
       207 
     | 
    
         
            -
             
     | 
| 
      
 209 
     | 
    
         
            +
                    get :edit, :re_workflow_id => @re_workflow.id, :re_rule_id => 1001, :rule_class_name => "RulesEngine::Rule::Simple"
         
     | 
| 
      
 210 
     | 
    
         
            +
                    response.should have_tag("form#re_rule_edit_form") do
         
     | 
| 
      
 211 
     | 
    
         
            +
                      with_tag("input#<%=rule_name%>_title", :value => 'Rule Title')     
         
     | 
| 
      
 212 
     | 
    
         
            +
                      with_tag("input#<%=rule_name%>_description", :value => 'Rule Description')     
         
     | 
| 
      
 213 
     | 
    
         
            +
                    end  
         
     | 
| 
      
 214 
     | 
    
         
            +
                  end
         
     | 
| 
       208 
215 
     | 
    
         
             
                end
         
     | 
| 
       209 
216 
     | 
    
         
             
              end
         
     | 
| 
       210 
     | 
    
         
            -
              
         
     | 
| 
       211 
217 
     | 
    
         
             
            end
         
     | 
| 
         @@ -18,7 +18,6 @@ describe ReRule do 
     | 
|
| 
       18 
18 
     | 
    
         
             
                @rule.stub!(:before_create)
         
     | 
| 
       19 
19 
     | 
    
         
             
                @rule.stub!(:before_update)
         
     | 
| 
       20 
20 
     | 
    
         
             
                @rule.stub!(:before_destroy)
         
     | 
| 
       21 
     | 
    
         
            -
                @rule.stub!(:expected_outcomes).and_return([])
         
     | 
| 
       22 
21 
     | 
    
         
             
                @rule.stub!(:valid?).and_return(true)
         
     | 
| 
       23 
22 
     | 
    
         
             
                @rule_class = mock("MockRuleClass")
         
     | 
| 
       24 
23 
     | 
    
         
             
                @rule_class.stub!(:new).and_return(@rule)      
         
     | 
| 
         @@ -34,7 +33,6 @@ describe ReRule do 
     | 
|
| 
       34 
33 
     | 
    
         
             
              end
         
     | 
| 
       35 
34 
     | 
    
         | 
| 
       36 
35 
     | 
    
         
             
              should_belong_to :re_workflow
         
     | 
| 
       37 
     | 
    
         
            -
              should_have_many :re_rule_expected_outcomes
         
     | 
| 
       38 
36 
     | 
    
         
             
              should_validate_presence_of :rule_class_name
         
     | 
| 
       39 
37 
     | 
    
         | 
| 
       40 
38 
     | 
    
         
             
              describe "validate the rule" do
         
     | 
| 
         @@ -142,15 +140,6 @@ describe ReRule do 
     | 
|
| 
       142 
140 
     | 
    
         
             
                    @re_rule.save
         
     | 
| 
       143 
141 
     | 
    
         
             
                    @re_rule.data.should == "rule data"      
         
     | 
| 
       144 
142 
     | 
    
         
             
                  end      
         
     | 
| 
       145 
     | 
    
         
            -
                  
         
     | 
| 
       146 
     | 
    
         
            -
                  it "should set the expected outcomes to the expected outcomes generated by the rule" do
         
     | 
| 
       147 
     | 
    
         
            -
                    re_rule_expected_outcome = ReRuleExpectedOutcome.new
         
     | 
| 
       148 
     | 
    
         
            -
                    ReRuleExpectedOutcome.should_receive(:new).with(:outcome => 101, :workflow_code => "one").and_return(re_rule_expected_outcome)
         
     | 
| 
       149 
     | 
    
         
            -
                    ReRuleExpectedOutcome.should_receive(:new).with(:outcome => 202, :workflow_code => "two").and_return(re_rule_expected_outcome)
         
     | 
| 
       150 
     | 
    
         
            -
                    @rule.stub(:expected_outcomes).and_return([{:outcome => 101, :workflow_code => "one"}, {:outcome => 202, :workflow_code => "two"}])
         
     | 
| 
       151 
     | 
    
         
            -
                    @re_rule.save
         
     | 
| 
       152 
     | 
    
         
            -
                    @re_rule.re_rule_expected_outcomes.should == [re_rule_expected_outcome, re_rule_expected_outcome]
         
     | 
| 
       153 
     | 
    
         
            -
                  end      
         
     | 
| 
       154 
143 
     | 
    
         
             
                end    
         
     | 
| 
       155 
144 
     | 
    
         
             
              end
         
     | 
| 
       156 
145 
     | 
    
         | 
| 
         @@ -186,44 +175,6 @@ describe ReRule do 
     | 
|
| 
       186 
175 
     | 
    
         
             
                end  
         
     | 
| 
       187 
176 
     | 
    
         
             
              end
         
     | 
| 
       188 
177 
     | 
    
         | 
| 
       189 
     | 
    
         
            -
              describe "rule outcomes available" do
         
     | 
| 
       190 
     | 
    
         
            -
                before(:each) do
         
     | 
| 
       191 
     | 
    
         
            -
                  @re_rule = ReRule.new      
         
     | 
| 
       192 
     | 
    
         
            -
                end
         
     | 
| 
       193 
     | 
    
         
            -
                
         
     | 
| 
       194 
     | 
    
         
            -
                it "should return the first outcome that is a OUTCOME_NEXT" do
         
     | 
| 
       195 
     | 
    
         
            -
                  outcome_1 = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::NEXT)
         
     | 
| 
       196 
     | 
    
         
            -
                  outcome_2 = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::NEXT)
         
     | 
| 
       197 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcomes << outcome_1
         
     | 
| 
       198 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcomes << outcome_2
         
     | 
| 
       199 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcome_next.should == outcome_1
         
     | 
| 
       200 
     | 
    
         
            -
                end
         
     | 
| 
       201 
     | 
    
         
            -
              
         
     | 
| 
       202 
     | 
    
         
            -
                it "should return the first outcome that is a OUTCOME_STOP_SUCCESS" do
         
     | 
| 
       203 
     | 
    
         
            -
                  outcome_1 = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::STOP_SUCCESS)
         
     | 
| 
       204 
     | 
    
         
            -
                  outcome_2 = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::STOP_SUCCESS)
         
     | 
| 
       205 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcomes << outcome_1
         
     | 
| 
       206 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcomes << outcome_2
         
     | 
| 
       207 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcome_success.should == outcome_1
         
     | 
| 
       208 
     | 
    
         
            -
                end
         
     | 
| 
       209 
     | 
    
         
            -
              
         
     | 
| 
       210 
     | 
    
         
            -
                it "should return the first outcome that is a OUTCOME_STOP_FAILURE" do
         
     | 
| 
       211 
     | 
    
         
            -
                  outcome_1 = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::STOP_FAILURE)
         
     | 
| 
       212 
     | 
    
         
            -
                  outcome_2 = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::STOP_FAILURE)
         
     | 
| 
       213 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcomes << outcome_1
         
     | 
| 
       214 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcomes << outcome_2
         
     | 
| 
       215 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcome_failure.should == outcome_1
         
     | 
| 
       216 
     | 
    
         
            -
                end
         
     | 
| 
       217 
     | 
    
         
            -
              
         
     | 
| 
       218 
     | 
    
         
            -
                it "should return all outcomes that are a OUTCOME_START_WORKFLOW" do
         
     | 
| 
       219 
     | 
    
         
            -
                  outcome_1 = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::START_WORKFLOW)
         
     | 
| 
       220 
     | 
    
         
            -
                  outcome_2 = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::START_WORKFLOW)
         
     | 
| 
       221 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcomes << outcome_1
         
     | 
| 
       222 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcomes << outcome_2
         
     | 
| 
       223 
     | 
    
         
            -
                  @re_rule.re_rule_expected_outcomes_start_workflow.should == [outcome_1, outcome_2]
         
     | 
| 
       224 
     | 
    
         
            -
                end
         
     | 
| 
       225 
     | 
    
         
            -
              end
         
     | 
| 
       226 
     | 
    
         
            -
              
         
     | 
| 
       227 
178 
     | 
    
         
             
              describe "checking for rule errors" do
         
     | 
| 
       228 
179 
     | 
    
         
             
                before(:each) do
         
     | 
| 
       229 
180 
     | 
    
         
             
                  @rule = mock("Rule", :valid? => true)
         
     | 
| 
         @@ -237,32 +188,20 @@ describe ReRule do 
     | 
|
| 
       237 
188 
     | 
    
         
             
                  @re_rule.rule_error.should == "class MockRuleClass missing"
         
     | 
| 
       238 
189 
     | 
    
         
             
                end
         
     | 
| 
       239 
190 
     | 
    
         | 
| 
       240 
     | 
    
         
            -
                it "should  
     | 
| 
       241 
     | 
    
         
            -
             
     | 
| 
       242 
     | 
    
         
            -
             
     | 
| 
       243 
     | 
    
         
            -
             
     | 
| 
       244 
     | 
    
         
            -
                end
         
     | 
| 
       245 
     | 
    
         
            -
              
         
     | 
| 
       246 
     | 
    
         
            -
                it "should validate the workflow is present and activated" do
         
     | 
| 
       247 
     | 
    
         
            -
                  re_rule_expected_outcome = mock_model(ReRuleExpectedOutcome, :workflow_code => "mock_workflow_code", :outcome => RulesEngine::Rule::Outcome::START_WORKFLOW)
         
     | 
| 
       248 
     | 
    
         
            -
                  ReWorkflow.should_receive(:find_by_code).and_return(mock("ReWorkflow", :workflow_error => nil))      
         
     | 
| 
       249 
     | 
    
         
            -
                  @re_rule.stub!(:re_rule_expected_outcomes).and_return([re_rule_expected_outcome])
         
     | 
| 
       250 
     | 
    
         
            -
                  @re_rule.rule_error.should be_nil
         
     | 
| 
       251 
     | 
    
         
            -
                end
         
     | 
| 
      
 191 
     | 
    
         
            +
                # it "should validate the workflow is present and published" do
         
     | 
| 
      
 192 
     | 
    
         
            +
                #   ReWorkflow.should_receive(:find_by_code).and_return(mock("ReWorkflow", :workflow_error => nil))      
         
     | 
| 
      
 193 
     | 
    
         
            +
                #   @re_rule.rule_error.should be_nil
         
     | 
| 
      
 194 
     | 
    
         
            +
                # end
         
     | 
| 
       252 
195 
     | 
    
         | 
| 
       253 
     | 
    
         
            -
                it "should return '[workflow_code] missing' if the required workflow is missing" do
         
     | 
| 
       254 
     | 
    
         
            -
             
     | 
| 
       255 
     | 
    
         
            -
             
     | 
| 
       256 
     | 
    
         
            -
             
     | 
| 
       257 
     | 
    
         
            -
                  @re_rule.rule_error.should == "mock_workflow_code missing"
         
     | 
| 
       258 
     | 
    
         
            -
                end
         
     | 
| 
      
 196 
     | 
    
         
            +
                # it "should return '[workflow_code] missing' if the required workflow is missing" do
         
     | 
| 
      
 197 
     | 
    
         
            +
                #   ReWorkflow.should_receive(:find_by_code).and_return(nil)
         
     | 
| 
      
 198 
     | 
    
         
            +
                #   @re_rule.rule_error.should == "mock_workflow_code missing"
         
     | 
| 
      
 199 
     | 
    
         
            +
                # end
         
     | 
| 
       259 
200 
     | 
    
         | 
| 
       260 
     | 
    
         
            -
                it "should return '[workflow_code] invalid' if the required workflow has errors" do
         
     | 
| 
       261 
     | 
    
         
            -
             
     | 
| 
       262 
     | 
    
         
            -
             
     | 
| 
       263 
     | 
    
         
            -
             
     | 
| 
       264 
     | 
    
         
            -
                  @re_rule.rule_error.should == "mock_workflow_code invalid"
         
     | 
| 
       265 
     | 
    
         
            -
                end
         
     | 
| 
      
 201 
     | 
    
         
            +
                # it "should return '[workflow_code] invalid' if the required workflow has errors" do
         
     | 
| 
      
 202 
     | 
    
         
            +
                #   ReWorkflow.should_receive(:find_by_code).and_return(mock("ReWorkflow", :workflow_error => "workflow error"))      
         
     | 
| 
      
 203 
     | 
    
         
            +
                #   @re_rule.rule_error.should == "mock_workflow_code invalid"
         
     | 
| 
      
 204 
     | 
    
         
            +
                # end
         
     | 
| 
       266 
205 
     | 
    
         | 
| 
       267 
206 
     | 
    
         
             
              end
         
     | 
| 
       268 
207 
     | 
    
         | 
| 
         @@ -305,7 +244,6 @@ describe ReRule do 
     | 
|
| 
       305 
244 
     | 
    
         | 
| 
       306 
245 
     | 
    
         
             
                it "should set the rule based on the data" do
         
     | 
| 
       307 
246 
     | 
    
         
             
                  re_rule = ReRule.new
         
     | 
| 
       308 
     | 
    
         
            -
                  RulesEngine::Discovery.should_receive(:rule_class).with('mock_rule_class_name').and_return(@rule_class)      
         
     | 
| 
       309 
247 
     | 
    
         | 
| 
       310 
248 
     | 
    
         
             
                  re_rule.revert!({
         
     | 
| 
       311 
249 
     | 
    
         
             
                    "rule_class_name" => 'mock_rule_class_name',
         
     | 
    
        metadata
    CHANGED
    
    | 
         @@ -1,13 +1,13 @@ 
     | 
|
| 
       1 
1 
     | 
    
         
             
            --- !ruby/object:Gem::Specification 
         
     | 
| 
       2 
2 
     | 
    
         
             
            name: rules_engine
         
     | 
| 
       3 
3 
     | 
    
         
             
            version: !ruby/object:Gem::Version 
         
     | 
| 
       4 
     | 
    
         
            -
              hash:  
     | 
| 
      
 4 
     | 
    
         
            +
              hash: 21
         
     | 
| 
       5 
5 
     | 
    
         
             
              prerelease: false
         
     | 
| 
       6 
6 
     | 
    
         
             
              segments: 
         
     | 
| 
       7 
7 
     | 
    
         
             
              - 0
         
     | 
| 
       8 
8 
     | 
    
         
             
              - 1
         
     | 
| 
       9 
     | 
    
         
            -
              -  
     | 
| 
       10 
     | 
    
         
            -
              version: 0.1. 
     | 
| 
      
 9 
     | 
    
         
            +
              - 7
         
     | 
| 
      
 10 
     | 
    
         
            +
              version: 0.1.7
         
     | 
| 
       11 
11 
     | 
    
         
             
            platform: ruby
         
     | 
| 
       12 
12 
     | 
    
         
             
            authors: 
         
     | 
| 
       13 
13 
     | 
    
         
             
            - Chris Douglas
         
     | 
| 
         @@ -15,7 +15,7 @@ autorequire: 
     | 
|
| 
       15 
15 
     | 
    
         
             
            bindir: bin
         
     | 
| 
       16 
16 
     | 
    
         
             
            cert_chain: []
         
     | 
| 
       17 
17 
     | 
    
         | 
| 
       18 
     | 
    
         
            -
            date: 2010-07- 
     | 
| 
      
 18 
     | 
    
         
            +
            date: 2010-07-29 00:00:00 +10:00
         
     | 
| 
       19 
19 
     | 
    
         
             
            default_executable: 
         
     | 
| 
       20 
20 
     | 
    
         
             
            dependencies: 
         
     | 
| 
       21 
21 
     | 
    
         
             
            - !ruby/object:Gem::Dependency 
         
     | 
| 
         @@ -86,7 +86,6 @@ files: 
     | 
|
| 
       86 
86 
     | 
    
         
             
            - rails_generators/templates/app/models/re_plan.rb
         
     | 
| 
       87 
87 
     | 
    
         
             
            - rails_generators/templates/app/models/re_plan_workflow.rb
         
     | 
| 
       88 
88 
     | 
    
         
             
            - rails_generators/templates/app/models/re_rule.rb
         
     | 
| 
       89 
     | 
    
         
            -
            - rails_generators/templates/app/models/re_rule_expected_outcome.rb
         
     | 
| 
       90 
89 
     | 
    
         
             
            - rails_generators/templates/app/models/re_workflow.rb
         
     | 
| 
       91 
90 
     | 
    
         
             
            - rails_generators/templates/app/rules/complex.rb
         
     | 
| 
       92 
91 
     | 
    
         
             
            - rails_generators/templates/app/rules/simple.rb
         
     | 
| 
         @@ -101,6 +100,8 @@ files: 
     | 
|
| 
       101 
100 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plan_workflow_rules/new.js.erb
         
     | 
| 
       102 
101 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plan_workflow_rules/update.js.erb
         
     | 
| 
       103 
102 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plan_workflows/change.html.erb
         
     | 
| 
      
 103 
     | 
    
         
            +
            - rails_generators/templates/app/views/re_plan_workflows/copy.html.erb
         
     | 
| 
      
 104 
     | 
    
         
            +
            - rails_generators/templates/app/views/re_plan_workflows/copy.js.erb
         
     | 
| 
       104 
105 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plan_workflows/edit.html.erb
         
     | 
| 
       105 
106 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plan_workflows/edit.js.erb
         
     | 
| 
       106 
107 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plan_workflows/new.html.erb
         
     | 
| 
         @@ -108,6 +109,7 @@ files: 
     | 
|
| 
       108 
109 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plan_workflows/show.html.erb
         
     | 
| 
       109 
110 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plan_workflows/update.js.erb
         
     | 
| 
       110 
111 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/_change.html.erb
         
     | 
| 
      
 112 
     | 
    
         
            +
            - rails_generators/templates/app/views/re_plans/_copy.html.erb
         
     | 
| 
       111 
113 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/_edit.html.erb
         
     | 
| 
       112 
114 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/_empty.html.erb
         
     | 
| 
       113 
115 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/_index.html.erb
         
     | 
| 
         @@ -119,6 +121,8 @@ files: 
     | 
|
| 
       119 
121 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/_workflow_preview.html.erb
         
     | 
| 
       120 
122 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/_workflow_show.html.erb
         
     | 
| 
       121 
123 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/change.html.erb
         
     | 
| 
      
 124 
     | 
    
         
            +
            - rails_generators/templates/app/views/re_plans/copy.html.erb
         
     | 
| 
      
 125 
     | 
    
         
            +
            - rails_generators/templates/app/views/re_plans/copy.js.erb
         
     | 
| 
       122 
126 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/create.js.erb
         
     | 
| 
       123 
127 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/edit.html.erb
         
     | 
| 
       124 
128 
     | 
    
         
             
            - rails_generators/templates/app/views/re_plans/edit.js.erb
         
     | 
| 
         @@ -168,6 +172,7 @@ files: 
     | 
|
| 
       168 
172 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflow_rules/update.js.erb
         
     | 
| 
       169 
173 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/_add_prepare.html.erb
         
     | 
| 
       170 
174 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/_add_update.html.erb
         
     | 
| 
      
 175 
     | 
    
         
            +
            - rails_generators/templates/app/views/re_workflows/_copy.html.erb
         
     | 
| 
       171 
176 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/_edit.html.erb
         
     | 
| 
       172 
177 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/_empty.html.erb
         
     | 
| 
       173 
178 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/_index.html.erb
         
     | 
| 
         @@ -184,6 +189,8 @@ files: 
     | 
|
| 
       184 
189 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/add.html.erb
         
     | 
| 
       185 
190 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/add.js.erb
         
     | 
| 
       186 
191 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/change.html.erb
         
     | 
| 
      
 192 
     | 
    
         
            +
            - rails_generators/templates/app/views/re_workflows/copy.html.erb
         
     | 
| 
      
 193 
     | 
    
         
            +
            - rails_generators/templates/app/views/re_workflows/copy.js.erb
         
     | 
| 
       187 
194 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/create.js.erb
         
     | 
| 
       188 
195 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/edit.html.erb
         
     | 
| 
       189 
196 
     | 
    
         
             
            - rails_generators/templates/app/views/re_workflows/edit.js.erb
         
     | 
| 
         @@ -226,6 +233,7 @@ files: 
     | 
|
| 
       226 
233 
     | 
    
         
             
            - rails_generators/templates/public/javascripts/rules_engine/re_workflow_new.js
         
     | 
| 
       227 
234 
     | 
    
         
             
            - rails_generators/templates/public/javascripts/rules_engine/re_workflow_plan.js
         
     | 
| 
       228 
235 
     | 
    
         
             
            - rails_generators/templates/public/javascripts/rules_engine/re_workflow_preview.js
         
     | 
| 
      
 236 
     | 
    
         
            +
            - rails_generators/templates/public/javascripts/rules_engine/re_workflow_show.js
         
     | 
| 
       229 
237 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/blueprint/ie.css
         
     | 
| 
       230 
238 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/icons/cross.png
         
     | 
| 
       231 
239 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/blueprint/plugins/buttons/icons/key.png
         
     | 
| 
         @@ -316,6 +324,7 @@ files: 
     | 
|
| 
       316 
324 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_common/status-verify-25.png
         
     | 
| 
       317 
325 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_plan/alert-25.png
         
     | 
| 
       318 
326 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_plan/change-25.png
         
     | 
| 
      
 327 
     | 
    
         
            +
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_plan/copy-25.png
         
     | 
| 
       319 
328 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_plan/delete-25.png
         
     | 
| 
       320 
329 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_plan/edit-25.png
         
     | 
| 
       321 
330 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_plan/list-25.png
         
     | 
| 
         @@ -358,6 +367,7 @@ files: 
     | 
|
| 
       358 
367 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/alert-25.png
         
     | 
| 
       359 
368 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/change-18.png
         
     | 
| 
       360 
369 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/change-25.png
         
     | 
| 
      
 370 
     | 
    
         
            +
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/copy-25.png
         
     | 
| 
       361 
371 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/delete-25.png
         
     | 
| 
       362 
372 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/edit-25.png
         
     | 
| 
       363 
373 
     | 
    
         
             
            - rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/is-default-18.png
         
     | 
| 
         @@ -379,7 +389,6 @@ files: 
     | 
|
| 
       379 
389 
     | 
    
         
             
            - rails_generators/templates/spec/lib/rules/simple_spec.rb
         
     | 
| 
       380 
390 
     | 
    
         
             
            - rails_generators/templates/spec/models/re_plan_spec.rb
         
     | 
| 
       381 
391 
     | 
    
         
             
            - rails_generators/templates/spec/models/re_plan_workflow_spec.rb
         
     | 
| 
       382 
     | 
    
         
            -
            - rails_generators/templates/spec/models/re_rule_expected_outcome_spec.rb
         
     | 
| 
       383 
392 
     | 
    
         
             
            - rails_generators/templates/spec/models/re_rule_spec.rb
         
     | 
| 
       384 
393 
     | 
    
         
             
            - rails_generators/templates/spec/models/re_workflow_spec.rb
         
     | 
| 
       385 
394 
     | 
    
         
             
            - rails_generators/templates/spec/support/rules_engine_blueprints.rb
         
     | 
| 
         @@ -1,14 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            class ReRuleExpectedOutcome < ActiveRecord::Base
         
     | 
| 
       2 
     | 
    
         
            -
              belongs_to :re_rule
         
     | 
| 
       3 
     | 
    
         
            -
             
     | 
| 
       4 
     | 
    
         
            -
              validates_associated  :re_rule
         
     | 
| 
       5 
     | 
    
         
            -
              validates_presence_of :outcome  
         
     | 
| 
       6 
     | 
    
         
            -
             
     | 
| 
       7 
     | 
    
         
            -
              def validate    
         
     | 
| 
       8 
     | 
    
         
            -
                if outcome == RulesEngine::Rule::Outcome::START_WORKFLOW && workflow_code.blank?
         
     | 
| 
       9 
     | 
    
         
            -
                  errors.add(:workflow_code, "workflow code required")
         
     | 
| 
       10 
     | 
    
         
            -
                else
         
     | 
| 
       11 
     | 
    
         
            -
                  true  
         
     | 
| 
       12 
     | 
    
         
            -
                end
         
     | 
| 
       13 
     | 
    
         
            -
              end
         
     | 
| 
       14 
     | 
    
         
            -
            end
         
     | 
| 
         @@ -1,29 +0,0 @@ 
     | 
|
| 
       1 
     | 
    
         
            -
            require File.expand_path(File.dirname(__FILE__) + '/../spec_helper')
         
     | 
| 
       2 
     | 
    
         
            -
             
     | 
| 
       3 
     | 
    
         
            -
            describe ReRuleExpectedOutcome do
         
     | 
| 
       4 
     | 
    
         
            -
              def valid_attributes
         
     | 
| 
       5 
     | 
    
         
            -
                {
         
     | 
| 
       6 
     | 
    
         
            -
                  :outcome => RulesEngine::Rule::Outcome::NEXT
         
     | 
| 
       7 
     | 
    
         
            -
                }
         
     | 
| 
       8 
     | 
    
         
            -
              end
         
     | 
| 
       9 
     | 
    
         
            -
              
         
     | 
| 
       10 
     | 
    
         
            -
              it "should be valid with valid attributes" do
         
     | 
| 
       11 
     | 
    
         
            -
                ReRuleExpectedOutcome.new(valid_attributes).should be_valid
         
     | 
| 
       12 
     | 
    
         
            -
              end
         
     | 
| 
       13 
     | 
    
         
            -
              
         
     | 
| 
       14 
     | 
    
         
            -
              should_validate_presence_of :outcome
         
     | 
| 
       15 
     | 
    
         
            -
             
     | 
| 
       16 
     | 
    
         
            -
              describe "START WORKFLOW" do
         
     | 
| 
       17 
     | 
    
         
            -
                it "should be invalid when the outcome workflow code is blank" do
         
     | 
| 
       18 
     | 
    
         
            -
                  re_rule_expected_outcome = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::START_WORKFLOW)
         
     | 
| 
       19 
     | 
    
         
            -
                  re_rule_expected_outcome.should_not be_valid
         
     | 
| 
       20 
     | 
    
         
            -
                  re_rule_expected_outcome.errors.on(:workflow_code).should_not be_blank
         
     | 
| 
       21 
     | 
    
         
            -
                end      
         
     | 
| 
       22 
     | 
    
         
            -
              
         
     | 
| 
       23 
     | 
    
         
            -
                it "should be valid when outcome workflow code is present" do
         
     | 
| 
       24 
     | 
    
         
            -
                  re_rule_expected_outcome = ReRuleExpectedOutcome.new(:outcome => RulesEngine::Rule::Outcome::START_WORKFLOW, :workflow_code => "mock code")
         
     | 
| 
       25 
     | 
    
         
            -
                  re_rule_expected_outcome.should be_valid
         
     | 
| 
       26 
     | 
    
         
            -
                end      
         
     | 
| 
       27 
     | 
    
         
            -
              end
         
     | 
| 
       28 
     | 
    
         
            -
             
     | 
| 
       29 
     | 
    
         
            -
            end
         
     |