rules_engine 0.0.8 → 0.1.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.8
1
+ 0.1.0
@@ -1,20 +1,19 @@
1
- directories :
2
- list :
3
- - app/views/re_jobs
4
- - app/views/re_pipeline_jobs
5
- - app/views/re_pipeline_rules
6
- - app/views/re_pipelines
1
+ contents :
2
+ - app/views/re_jobs
3
+ - app/views/re_pipeline_jobs
4
+ - app/views/re_pipeline_rules
5
+ - app/views/re_pipelines
7
6
 
8
- - public/stylesheets/fancybox
9
- - public/stylesheets/blueprint
10
- - public/stylesheets/re_view_box
11
- - public/stylesheets/re_view_button
12
- - public/stylesheets/re_view_error
13
- - public/stylesheets/re_view_navigate
14
-
15
- - public/stylesheets/rules_engine
7
+ - public/stylesheets/fancybox
8
+ - public/stylesheets/blueprint
9
+ - public/stylesheets/re_view_box
10
+ - public/stylesheets/re_view_button
11
+ - public/stylesheets/re_view_error
12
+ - public/stylesheets/re_view_navigate
16
13
 
17
- - features/re_pipeline
14
+ - public/stylesheets/rules_engine
15
+
16
+ - features/re_pipeline
18
17
 
19
18
  files :
20
19
  - doc/README.rules_engine
@@ -1,8 +1,7 @@
1
1
  directories :
2
- raw:
3
- - app/rules
4
- - spec/lib/rules
5
- - lib/tasks
2
+ - app/rules
3
+ - spec/lib/rules
4
+ - lib/tasks
6
5
 
7
6
  templates :
8
7
  replacements :
@@ -1,8 +1,7 @@
1
1
  directories :
2
- raw:
3
- - app/rules
4
- - spec/lib/rules
5
- - lib/tasks
2
+ - app/rules
3
+ - spec/lib/rules
4
+ - lib/tasks
6
5
 
7
6
  templates :
8
7
  replacements :
@@ -101,8 +101,10 @@ class <%=rule_class%>Rule < RulesEngine::Rule
101
101
  # it gets the data parameter :sentence
102
102
  # it sets the data parameter :match
103
103
  def process(job, data)
104
- sentence = data[:sentence] || data["sentence"]
105
- return nil if sentence.blank?
104
+ sentence = data[:sentence] || data["sentence"]
105
+ if sentence.blank?
106
+ return RulesEngine::RuleOutcome.new(RulesEngine::RuleOutcome::OUTCOME_NEXT)
107
+ end
106
108
 
107
109
  words.each do |word|
108
110
  if /#{word}/i =~ sentence
@@ -122,7 +124,7 @@ class <%=rule_class%>Rule < RulesEngine::Rule
122
124
  end
123
125
  end
124
126
 
125
- nil
127
+ RulesEngine::RuleOutcome.new(RulesEngine::RuleOutcome::OUTCOME_NEXT)
126
128
  end
127
129
 
128
130
  end
@@ -282,13 +282,13 @@ describe <%=rule_class%>Rule do
282
282
 
283
283
  it "should do nothing if there is no sentance" do
284
284
  @<%=rule_name%>_rule = <%=rule_class%>Rule.new
285
- @<%=rule_name%>_rule.process(@job, {}).should be_nil
285
+ @<%=rule_name%>_rule.process(@job, {}).outcome.should == RulesEngine::RuleOutcome::OUTCOME_NEXT
286
286
  end
287
287
 
288
288
  it "should do nothing if there is no match" do
289
289
  @<%=rule_name%>_rule = <%=rule_class%>Rule.new
290
290
  @<%=rule_name%>_rule.stub!(:words).and_return(["no", "words"])
291
- @<%=rule_name%>_rule.process(@job, @data).should be_nil
291
+ @<%=rule_name%>_rule.process(@job, @data).outcome.should == RulesEngine::RuleOutcome::OUTCOME_NEXT
292
292
  end
293
293
 
294
294
  describe "a match found" do
@@ -158,11 +158,14 @@ describe <%=rule_class%>Rule do
158
158
  describe "processing the rule" do
159
159
  before(:each) do
160
160
  @<%=rule_name%>_rule = <%=rule_class%>Rule.new
161
+
162
+ @job = mock("job")
163
+ @job.stub!(:audit)
161
164
  end
162
165
 
163
166
  it "should do nothing" do
164
167
  @<%=rule_name%>_rule = <%=rule_class%>Rule.new
165
- @<%=rule_name%>_rule.process(101, {}).should be_nil
168
+ @<%=rule_name%>_rule.process(@job, {}).outcome.should == RulesEngine::RuleOutcome::OUTCOME_NEXT
166
169
  end
167
170
  end
168
171
  end
@@ -19,8 +19,6 @@ describe ReJob do
19
19
  describe "jobs not started" do
20
20
  it "should not be included" do
21
21
  re_job = ReJob.new(:job_status => ReJob::JOB_STATUS_NONE)
22
- re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => Time.now, :re_pipeline_id => 1001)
23
- re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => Time.now, :re_pipeline_id => 2001)
24
22
  re_job.save!
25
23
 
26
24
  ReJob.find_jobs(:page => 1).length.should == 0
@@ -30,20 +28,36 @@ describe ReJob do
30
28
  describe "jobs that are running" do
31
29
  before(:each) do
32
30
  @re_job = ReJob.new(:job_status => ReJob::JOB_STATUS_RUNNING)
33
- @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => Time.now, :re_pipeline_id => 1001)
34
- @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => Time.now, :re_pipeline_id => 2001)
35
31
  @re_job.save!
36
32
  end
37
33
 
38
- it "should be included in the results" do
34
+ it "should be included in the audit results" do
39
35
  result_set = ReJob.find_jobs(:page => 1)
40
36
  result_set.length.should == 1
41
37
  result_set[0]["job_id"].to_i.should == @re_job.id
42
38
  end
43
39
 
44
- it "should include the start data" do
45
- result_set = ReJob.find_jobs(:page => 1)
46
- result_set[0]["start_date"].should_not be_nil
40
+ describe "no audit entries" do
41
+ it "should include the start date from the job" do
42
+ result_set = ReJob.find_jobs(:page => 1)
43
+ result_set[0]["start_date"].should_not be_nil
44
+ # result_set[0]["start_date"].should == @re_job.created_at
45
+ end
46
+ end
47
+
48
+ describe "has audit entries" do
49
+ before(:each) do
50
+ @re_audit_date = Time.parse("April 24 2010")
51
+ @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => @re_audit_date, :re_pipeline_id => 1001)
52
+ @re_job.save!
53
+ end
54
+
55
+ it "should include the start date from the audit entries" do
56
+ result_set = ReJob.find_jobs(:page => 1)
57
+ result_set[0]["start_date"].should_not be_nil
58
+ result_set[0]["start_date"].should == @re_audit_date.utc
59
+ end
60
+
47
61
  end
48
62
 
49
63
  it "should not include the end data when end not set" do
@@ -54,9 +68,12 @@ describe ReJob do
54
68
 
55
69
  describe "jobs that are finished" do
56
70
  before(:each) do
71
+ @re_audit_date_start = Time.parse("April 24 2010")
72
+ @re_audit_date_end = Time.parse("April 25 2010")
73
+
57
74
  @re_job = ReJob.new(:job_status => ReJob::JOB_STATUS_SUCCESS)
58
- @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => Time.now, :re_pipeline_id => 1001)
59
- @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => Time.now, :re_pipeline_id => 2001)
75
+ @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => @re_audit_date_start, :re_pipeline_id => 1001)
76
+ @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => @re_audit_date_end, :re_pipeline_id => 2001)
60
77
  @re_job.save!
61
78
  end
62
79
 
@@ -68,47 +85,19 @@ describe ReJob do
68
85
 
69
86
  it "should include the start data" do
70
87
  result_set = ReJob.find_jobs(:page => 1)
71
- result_set[0]["start_date"].should_not be_nil
88
+ result_set[0]["start_date"].should_not be_nil
89
+ result_set[0]["start_date"].should == @re_audit_date_start.utc
72
90
  end
73
91
 
74
92
  it "should include the end date" do
75
93
  result_set = ReJob.find_jobs(:page => 1)
76
94
  result_set[0]["end_date"].should_not be_nil
95
+ result_set[0]["end_date"].should == @re_audit_date_end.utc
77
96
  end
78
97
  end
79
98
  end
80
99
 
81
100
  describe "finding jobs by the pipeline" do
82
- # before(:each) do
83
- # @re_job = ReJob.new(valid_attributes)
84
- # @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => Time.now, :re_pipeline_id => 1001)
85
- # @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_SUCCESS, :audit_date => Time.now, :re_pipeline_id => 2001)
86
- # @re_job.save!
87
- # end
88
- #
89
- # it "should include jobs where the job audit has started in the pipeline" do
90
- # result_set = ReJob.find_jobs_by_pipeline(1001, :page => 1)
91
- # result_set.length.should == 1
92
- # result_set[0]["job_id"].to_i.should == @re_job.id
93
- # end
94
- #
95
- # it "should include the start data" do
96
- # result_set = ReJob.find_jobs_by_pipeline(1001, :page => 1)
97
- # result_set[0]["start_date"].should_not be_nil
98
- # end
99
- #
100
- # it "should not include the end data when end not set" do
101
- # result_set = ReJob.find_jobs_by_pipeline(1001, :page => 1)
102
- # result_set[0]["end_date"].should be_nil
103
- # end
104
- #
105
- # it "should include the end data" do
106
- # @re_job.re_job_audits << ReJobAudit.new(:audit_code => ReJobAudit::AUDIT_PIPELINE_END, :audit_date => Time.now, :re_pipeline_id => 1001)
107
- #
108
- # result_set = ReJob.find_jobs_by_pipeline(1001, :page => 1)
109
- # result_set[0]["end_date"].should_not be_nil
110
- # end
111
- # end
112
101
 
113
102
  describe "jobs not started" do
114
103
  it "should not be included" do
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: 15
4
+ hash: 27
5
5
  prerelease: false
6
6
  segments:
7
7
  - 0
8
+ - 1
8
9
  - 0
9
- - 8
10
- version: 0.0.8
10
+ version: 0.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Chris Douglas