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.
Files changed (59) hide show
  1. data/VERSION +1 -1
  2. data/lib/rules_engine/process/auditor/db_auditor.rb +1 -0
  3. data/lib/rules_engine/rule/outcome.rb +1 -0
  4. data/rails_generators/manifests/complex.rb +4 -1
  5. data/rails_generators/manifests/complex.yml +0 -1
  6. data/rails_generators/manifests/rules_engine.rb +15 -2
  7. data/rails_generators/manifests/rules_engine.yml +0 -2
  8. data/rails_generators/manifests/simple.rb +4 -1
  9. data/rails_generators/manifests/simple.yml +0 -1
  10. data/rails_generators/templates/app/controllers/re_plan_workflows_controller.rb +30 -5
  11. data/rails_generators/templates/app/controllers/re_plans_controller.rb +26 -2
  12. data/rails_generators/templates/app/controllers/re_workflows_controller.rb +27 -2
  13. data/rails_generators/templates/app/models/re_rule.rb +0 -30
  14. data/rails_generators/templates/app/rules/complex.rb +3 -3
  15. data/rails_generators/templates/app/views/re_plan_workflows/change.html.erb +6 -2
  16. data/rails_generators/templates/app/views/re_plan_workflows/copy.html.erb +12 -0
  17. data/rails_generators/templates/app/views/re_plan_workflows/copy.js.erb +8 -0
  18. data/rails_generators/templates/app/views/re_plan_workflows/new.js.erb +5 -1
  19. data/rails_generators/templates/app/views/re_plan_workflows/show.html.erb +3 -2
  20. data/rails_generators/templates/app/views/re_plans/_copy.html.erb +18 -0
  21. data/rails_generators/templates/app/views/re_plans/_preview.html.erb +1 -1
  22. data/rails_generators/templates/app/views/re_plans/_workflow_preview.html.erb +1 -3
  23. data/rails_generators/templates/app/views/re_plans/change.html.erb +6 -0
  24. data/rails_generators/templates/app/views/re_plans/copy.html.erb +11 -0
  25. data/rails_generators/templates/app/views/re_plans/copy.js.erb +9 -0
  26. data/rails_generators/templates/app/views/re_plans/new.js.erb +4 -1
  27. data/rails_generators/templates/app/views/re_plans/show.html.erb +1 -1
  28. data/rails_generators/templates/app/views/re_rule_definitions/complex/_form.html.erb +2 -2
  29. data/rails_generators/templates/app/views/re_rule_definitions/simple/_form.html.erb +1 -1
  30. data/rails_generators/templates/app/views/re_workflows/_copy.html.erb +21 -0
  31. data/rails_generators/templates/app/views/re_workflows/_rule_change.html.erb +11 -14
  32. data/rails_generators/templates/app/views/re_workflows/_rule_preview.html.erb +14 -17
  33. data/rails_generators/templates/app/views/re_workflows/_rule_show.html.erb +13 -16
  34. data/rails_generators/templates/app/views/re_workflows/_show.html.erb +1 -3
  35. data/rails_generators/templates/app/views/re_workflows/change.html.erb +5 -0
  36. data/rails_generators/templates/app/views/re_workflows/copy.html.erb +11 -0
  37. data/rails_generators/templates/app/views/re_workflows/copy.js.erb +8 -0
  38. data/rails_generators/templates/app/views/re_workflows/index.html.erb +1 -1
  39. data/rails_generators/templates/app/views/re_workflows/preview.html.erb +1 -0
  40. data/rails_generators/templates/app/views/re_workflows/show.html.erb +3 -2
  41. data/rails_generators/templates/app/views/re_workflows/update.js.erb +1 -1
  42. data/rails_generators/templates/db/migrate/20100308225008_create_rules_engine.rb +0 -13
  43. data/rails_generators/templates/doc/README.rules_engine +7 -6
  44. data/rails_generators/templates/lib/tasks/rules_engine.rake +2 -2
  45. data/rails_generators/templates/public/javascripts/rules_engine/re_plan_change.js +20 -0
  46. data/rails_generators/templates/public/javascripts/rules_engine/re_plan_new.js +2 -8
  47. data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_add.js +3 -12
  48. data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_change.js +23 -4
  49. data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_new.js +2 -8
  50. data/rails_generators/templates/public/javascripts/rules_engine/re_workflow_show.js +22 -0
  51. data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_plan/copy-25.png +0 -0
  52. data/rails_generators/templates/public/stylesheets/rules_engine/images/rules_engine/re_workflow/copy-25.png +0 -0
  53. data/rails_generators/templates/public/stylesheets/rules_engine/screen.css +52 -1
  54. data/rails_generators/templates/spec/lib/rules/complex_spec.rb +46 -41
  55. data/rails_generators/templates/spec/lib/rules/simple_spec.rb +41 -35
  56. data/rails_generators/templates/spec/models/re_rule_spec.rb +12 -74
  57. metadata +15 -6
  58. data/rails_generators/templates/app/models/re_rule_expected_outcome.rb +0 -14
  59. data/rails_generators/templates/spec/models/re_rule_expected_outcome_spec.rb +0 -29
@@ -15,8 +15,8 @@ task :rules_engine do
15
15
 
16
16
  RulesEngine::Publish.publisher = :db_publisher
17
17
  RulesEngine::Process.runner = :db_runner
18
- RulesEngine::Process.auditor = :db_auditor
19
- RulesEngine::Process.auditor.audit_level = RulesEngine::Process::AUDIT_INFO
18
+ # RulesEngine::Process.auditor = :db_auditor
19
+ # RulesEngine::Process.auditor.audit_level = RulesEngine::Process::AUDIT_INFO
20
20
  RulesEngine::Discovery.rules_path = File.expand_path(File.join(File.dirname(__FILE__), '/../../app/rules'))
21
21
  RulesEngine::Discovery.discover!
22
22
 
@@ -11,6 +11,26 @@ re_plan_action_confirm = function(id, title, action) {
11
11
 
12
12
  $(document).ready(function() {
13
13
 
14
+ $('a#re_plan_copy').live('click', function() {
15
+ var plan = $(this).attr('href').replace('#', '');
16
+
17
+ $.re_block();
18
+ $.get('/re_plans/' + plan + '/copy', null, null, 'script');
19
+ return false;
20
+ });
21
+
22
+ $("#re_plan_copy_cancel").live('click', function() {
23
+ $.fancybox.close();
24
+ return false;
25
+ });
26
+
27
+ $('#re_plan_copy_duplicate').live('click', function() {
28
+ $.re_block();
29
+ $.post($('#re_plan_copy_form').attr('action'), $('#re_plan_copy_form').serialize(), null, 'script');
30
+ return false;
31
+ });
32
+
33
+
14
34
  $('a#re_plan_edit').live('click', function() {
15
35
  var plan = $(this).attr('href').replace('#', '');
16
36
 
@@ -2,10 +2,7 @@ $(document).ready(function() {
2
2
 
3
3
  $('a#re_plan_new').live('click', function() {
4
4
  $.re_block();
5
- $.get('/re_plans/new', null, function() {
6
- $.re_unblock();
7
- $.fancybox({ href: '#re_content'});
8
- }, 'script');
5
+ $.get('/re_plans/new', null, null, 'script');
9
6
  return false;
10
7
  });
11
8
 
@@ -17,10 +14,7 @@ $(document).ready(function() {
17
14
 
18
15
  $('#re_plan_new_insert').live('click', function() {
19
16
  $.re_block();
20
- $.post($('#re_plan_new_form').attr('action'), $('#re_plan_new_form').serialize(), function() {
21
- $.fancybox.resize();
22
- $.re_unblock();
23
- }, 'script');
17
+ $.post($('#re_plan_new_form').attr('action'), $('#re_plan_new_form').serialize(), null, 'script');
24
18
 
25
19
  return false;
26
20
  });
@@ -32,10 +32,7 @@ $(document).ready(function() {
32
32
  }
33
33
 
34
34
  $.re_block();
35
- $.get('/re_plans/' + plan_id + '/workflows/new', null, function() {
36
- $.re_unblock();
37
- $.fancybox({ href: '#re_content'});
38
- }, 'script');
35
+ $.get('/re_plans/' + plan_id + '/workflows/new', null, null, 'script');
39
36
 
40
37
  return false;
41
38
  });
@@ -47,10 +44,7 @@ $(document).ready(function() {
47
44
 
48
45
  $('#re_workflow_new_insert').live('click', function() {
49
46
  $.re_block();
50
- $.post($('#re_workflow_new_form').attr('action'), $('#re_workflow_new_form').serialize(), function() {
51
- $.fancybox.resize();
52
- $.re_unblock();
53
- }, 'script');
47
+ $.post($('#re_workflow_new_form').attr('action'), $('#re_workflow_new_form').serialize(), null, 'script');
54
48
 
55
49
  return false;
56
50
  });
@@ -95,10 +89,7 @@ $(document).ready(function() {
95
89
  var form_id = $(this).attr('href');
96
90
 
97
91
  $.re_block();
98
- $.post($(form_id).attr('action'), $(form_id).serialize(), function() {
99
- $.fancybox.close();
100
- $.re_unblock();
101
- }, 'script');
92
+ $.post($(form_id).attr('action'), $(form_id).serialize(), null, 'script');
102
93
  return false;
103
94
  });
104
95
 
@@ -11,6 +11,28 @@ re_workflow_action_confirm = function(id, title, action) {
11
11
 
12
12
  $(document).ready(function() {
13
13
 
14
+ $('a#re_workflow_copy').live('click', function() {
15
+ var values = $(this).attr('href').replace('#', '').split('|');
16
+
17
+ $.re_block();
18
+ if (parseInt(values[0]) == 0)
19
+ $.get('/re_workflows/' + values[1] + '/copy', null, null, 'script');
20
+ else
21
+ $.get('/re_plans/' + values[0] + '/workflows/' + values[1] + '/copy', null, null, 'script');
22
+ return false;
23
+ });
24
+
25
+ $("#re_workflow_copy_cancel").live('click', function() {
26
+ $.fancybox.close();
27
+ return false;
28
+ });
29
+
30
+ $('#re_workflow_copy_duplicate').live('click', function() {
31
+ $.re_block();
32
+ $.post($('#re_workflow_copy_form').attr('action'), $('#re_workflow_copy_form').serialize(), null, 'script');
33
+ return false;
34
+ });
35
+
14
36
  $('a#re_workflow_edit').live('click', function() {
15
37
  var values = $(this).attr('href').replace('#', '').split('|');
16
38
 
@@ -135,10 +157,7 @@ $(document).ready(function() {
135
157
  var form_id = $(this).attr('href');
136
158
 
137
159
  $.re_block();
138
- $.post($(form_id).attr('action'), $(form_id).serialize(), function() {
139
- $.fancybox.close();
140
- $.re_unblock();
141
- }, 'script');
160
+ $.post($(form_id).attr('action'), $(form_id).serialize(), null, 'script');
142
161
  return false;
143
162
  });
144
163
 
@@ -2,10 +2,7 @@ $(document).ready(function() {
2
2
 
3
3
  $('a#re_workflow_new').live('click', function() {
4
4
  $.re_block();
5
- $.get('/re_workflows/new', null, function() {
6
- $.re_unblock();
7
- $.fancybox({ href: '#re_content'});
8
- }, 'script');
5
+ $.get('/re_workflows/new', null, null, 'script');
9
6
  return false;
10
7
  });
11
8
 
@@ -17,10 +14,7 @@ $(document).ready(function() {
17
14
 
18
15
  $('#re_workflow_new_insert').live('click', function() {
19
16
  $.re_block();
20
- $.post($('#re_workflow_new_form').attr('action'), $('#re_workflow_new_form').serialize(), function() {
21
- $.fancybox.resize();
22
- $.re_unblock();
23
- }, 'script');
17
+ $.post($('#re_workflow_new_form').attr('action'), $('#re_workflow_new_form').serialize(), null, 'script');
24
18
 
25
19
  return false;
26
20
  });
@@ -0,0 +1,22 @@
1
+ $(document).ready(function() {
2
+
3
+ $('a.re-list-rule-help').live('click', function() {
4
+ var values = $(this).attr('href').replace('#', '').split('|');
5
+
6
+ $.re_block();
7
+ if (parseInt(values[0]) == 0)
8
+ $.get('/re_workflows/' + values[1] + '/rules/help?rule_class_name=' + values[2], null, null, 'script');
9
+ else
10
+ $.get('/re_plans/' + values[0] + '/workflows/' + values[1] + '/rules/help?rule_class_name=' + values[2], null, null, 'script');
11
+
12
+ return false;
13
+ });
14
+
15
+ $("#re_rule_help_cancel").live('click', function() {
16
+ $.fancybox.close();
17
+ return false;
18
+ });
19
+
20
+ });
21
+
22
+
@@ -35,6 +35,10 @@
35
35
  background: transparent url('./images/rules_engine/re_plan/change-25.png') no-repeat 0 4px;
36
36
  padding: 0 0 0 30px;
37
37
  }
38
+ .re-breadcrumbs .re-bc-plan-copy {
39
+ background: transparent url('./images/rules_engine/re_plan/copy-25.png') no-repeat 0 4px;
40
+ padding: 0 0 0 30px;
41
+ }
38
42
 
39
43
  /* sub headers*/
40
44
  h3.re-hdr-plan-alert {
@@ -58,18 +62,22 @@ h3.re-hdr-plan-delete {
58
62
  h4.re-sts-plan-draft {
59
63
  background: transparent url('./images/rules_engine/re_common/status-draft-18.png') no-repeat left 4px;
60
64
  padding: 0 0 0 22px;
65
+ margin: 0;
61
66
  }
62
67
  h4.re-sts-plan-changed {
63
68
  background: transparent url('./images/rules_engine/re_common/status-changed-18.png') no-repeat left 4px;
64
69
  padding: 0 0 0 22px;
70
+ margin: 0;
65
71
  }
66
72
  h4.re-sts-plan-published {
67
73
  background: transparent url('./images/rules_engine/re_common/status-published-18.png') no-repeat left 4px;
68
74
  padding: 0 0 0 22px;
75
+ margin: 0;
69
76
  }
70
77
  h4.re-sts-plan-verify {
71
78
  background: transparent url('./images/rules_engine/re_common/status-verify-18.png') no-repeat left 4px;
72
79
  padding: 0 0 0 22px;
80
+ margin: 0;
73
81
  }
74
82
  em.re-sts-plan-draft {
75
83
  color: #696969;
@@ -112,6 +120,15 @@ a.re-menu-plan-change {
112
120
  a.re-menu-plan-change:hover {
113
121
  text-decoration: underline;
114
122
  }
123
+ a.re-menu-plan-copy {
124
+ background: transparent url('./images/rules_engine/re_plan/copy-25.png') no-repeat left -1px;
125
+ padding: 0 0 0 28px;
126
+ color: #218868;
127
+ text-decoration: none;
128
+ }
129
+ a.re-menu-plan-copy:hover {
130
+ text-decoration: underline;
131
+ }
115
132
  a.re-menu-plan-edit {
116
133
  background: transparent url('./images/rules_engine/re_plan/edit-25.png') no-repeat left -1px;
117
134
  padding: 0 0 0 30px;
@@ -208,6 +225,11 @@ div.re-xtra-plan-preview {
208
225
  background: transparent url('./images/rules_engine/re_workflow/edit-25.png') no-repeat 0 4px;
209
226
  padding: 0 0 0 30px;
210
227
  }
228
+ .re-breadcrumbs .re-bc-workflow-copy {
229
+ background: transparent url('./images/rules_engine/re_workflow/copy-25.png') no-repeat 0 4px;
230
+ padding: 0 0 0 30px;
231
+ }
232
+
211
233
 
212
234
  /* sub headers*/
213
235
  h3.re-hdr-workflow-alert {
@@ -239,10 +261,12 @@ h3.re-hdr-workflow-delete {
239
261
  h4.re-sts-workflow-valid {
240
262
  background: transparent url('./images/rules_engine/re_common/status-valid-18.png') no-repeat left 4px;
241
263
  padding: 0 0 0 22px;
264
+ margin: 0;
242
265
  }
243
266
  h4.re-sts-workflow-verify {
244
267
  background: transparent url('./images/rules_engine/re_common/status-verify-18.png') no-repeat left 4px;
245
268
  padding: 0 0 0 22px;
269
+ margin: 0;
246
270
  }
247
271
  em.re-sts-workflow-valid {
248
272
  color: #218868;
@@ -283,6 +307,7 @@ a.re-menu-workflow-add-link {
283
307
  color: #222;
284
308
  line-height: 19px;
285
309
  text-decoration: none;
310
+ width:200px;
286
311
  }
287
312
  a.re-menu-workflow-add-link:hover {
288
313
  text-decoration: underline;
@@ -295,6 +320,7 @@ a.re-menu-workflow-add-link-off {
295
320
  color: #222;
296
321
  line-height: 19px;
297
322
  text-decoration: none;
323
+ width:200px;
298
324
  }
299
325
  a.re-menu-workflow-add-link-off:hover {
300
326
  text-decoration: none;
@@ -314,6 +340,15 @@ a.re-menu-workflow-show {
314
340
  a.re-menu-workflow-show:hover {
315
341
  text-decoration: underline;
316
342
  }
343
+ a.re-menu-workflow-copy {
344
+ background: transparent url('./images/rules_engine/re_workflow/copy-25.png') no-repeat left -1px;
345
+ padding: 0 0 0 28px;
346
+ color: #218868;
347
+ text-decoration: none;
348
+ }
349
+ a.re-menu-workflow-copy:hover {
350
+ text-decoration: underline;
351
+ }
317
352
  a.re-menu-workflow-edit {
318
353
  background: transparent url('./images/rules_engine/re_workflow/edit-25.png') no-repeat left -1px;
319
354
  padding: 0 0 0 30px;
@@ -505,19 +540,23 @@ h3.re-hdr-rule-alert {
505
540
  h4.re-sts-rule-valid {
506
541
  background: transparent url('./images/rules_engine/re_common/status-valid-18.png') no-repeat left 4px;
507
542
  padding: 0 0 0 20px;
543
+ margin: 0;
508
544
  }
509
545
  h4.re-sts-rule-verify {
510
546
  background: transparent url('./images/rules_engine/re_common/status-verify-18.png') no-repeat left 4px;
511
547
  padding: 0 0 0 20px;
548
+ margin: 0;
512
549
  }
513
550
 
514
551
  h6.re-sts-rule-valid {
515
552
  background: transparent url('./images/rules_engine/re_common/status-valid-14.png') no-repeat left 4px;
516
553
  padding: 0 0 0 18px;
554
+ margin: 0;
517
555
  }
518
556
  h6.re-sts-rule-verify {
519
557
  background: transparent url('./images/rules_engine/re_common/status-verify-14.png') no-repeat left 4px;
520
558
  padding: 0 0 0 18px;
559
+ margin: 0;
521
560
  }
522
561
 
523
562
  /* menu */
@@ -601,6 +640,17 @@ a.re-list-rule-move-up-off {
601
640
  a.re-list-rule-move-up-off span {
602
641
  display: none;
603
642
  }
643
+ a.re-list-rule-help {
644
+ float:right;
645
+ background: transparent url('./images/rules_engine/re_rule/help-25.png') no-repeat 0px 0px;
646
+ width: 25px;
647
+ height: 25px;
648
+ margin: 0px 3px 0 0;
649
+ }
650
+ a.re-list-rule-help span {
651
+ display: none;
652
+ }
653
+
604
654
 
605
655
  /* extra */
606
656
  div.re-xtra-rule-title-plural {
@@ -1076,6 +1126,7 @@ table.data-line tr.odd td {
1076
1126
  .re-form-data .form-text{
1077
1127
  display:inline-block;
1078
1128
  font-size: 18px;
1129
+ line-height: 20px;
1079
1130
  color: #222;
1080
1131
  padding: 0 5px;
1081
1132
  }
@@ -1320,7 +1371,7 @@ a.button-unchecked:hover { background-color: #696969; }
1320
1371
 
1321
1372
  a.re-add-link {
1322
1373
  display: block;
1323
- background: url(./images/re_view_button/icon-add.png) left 4px no-repeat;
1374
+ background: url(./images/re_view_button/icon-add.png) left 2px no-repeat;
1324
1375
  text-decoration: none;
1325
1376
  font-weight: normal;
1326
1377
  padding: 0 0 2px 24px;
@@ -262,11 +262,15 @@ describe RulesEngine::Rule::<%=rule_class%> do
262
262
  end
263
263
  end
264
264
 
265
- describe "after a rule is created" do
265
+ describe "before a rule is created" do
266
266
  # xit "There is nothing to do here"
267
267
  end
268
268
 
269
- describe "after a rule is created" do
269
+ describe "before a rule is updated" do
270
+ # xit "There is nothing to do here"
271
+ end
272
+
273
+ describe "before a rule is destroyed" do
270
274
  # xit "There is nothing to do here"
271
275
  end
272
276
 
@@ -291,7 +295,7 @@ describe RulesEngine::Rule::<%=rule_class%> do
291
295
 
292
296
  it "should add the match to the data" do
293
297
  @<%=rule_name%>.process(@job, @matched_data)
294
- @matched_data[:match].should == "word"
298
+ @matched_data[:tweet_match].should == "word"
295
299
  end
296
300
 
297
301
  it "should audit the match" do
@@ -333,53 +337,54 @@ end
333
337
  describe ReWorkflowRulesController, :type => :controller do
334
338
  integrate_views
335
339
 
336
- before(:each) do
337
- controller.instance_eval { flash.stub!(:sweep) }
340
+ describe "RulesEngine::Rule::<%=rule_class%>" do
341
+ before(:each) do
342
+ controller.instance_eval { flash.stub!(:sweep) }
338
343
 
339
- RulesEngine::Discovery.discover!
344
+ RulesEngine::Discovery.discover!
340
345
 
341
- controller.stub!(:rules_engine_reader_access_required).and_return(true)
342
- controller.stub!(:rules_engine_editor_access_required).and_return(true)
346
+ controller.stub!(:rules_engine_reader_access_required).and_return(true)
347
+ controller.stub!(:rules_engine_editor_access_required).and_return(true)
343
348
 
344
- @re_workflow = ReWorkflow.make
345
- ReWorkflow.stub!(:find).and_return(@re_workflow)
346
- end
349
+ @re_workflow = ReWorkflow.make
350
+ ReWorkflow.stub!(:find).and_return(@re_workflow)
351
+ end
347
352
 
348
- describe "<%=rule_name%> rule help" do
349
- it "should assign the <%=rule_name%> rule class" do
350
- get :help, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
351
- assigns[:rule_class].should == RulesEngine::Rule::<%=rule_class%>
353
+ describe "<%=rule_name%> rule help" do
354
+ it "should assign the <%=rule_name%> rule class" do
355
+ get :help, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
356
+ assigns[:rule_class].should == RulesEngine::Rule::<%=rule_class%>
357
+ end
352
358
  end
353
- end
354
359
 
355
- describe "new" do
356
- it "show the new form" do
357
- get :new, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
358
- response.should have_tag("form#re_rule_new_form") do
359
- with_tag("input#<%=rule_name%>_title")
360
- with_tag("input#<%=rule_name%>_words_0_word")
361
- with_tag("select#<%=rule_name%>_workflow_action")
362
- with_tag("input#<%=rule_name%>_workflow")
363
- end
360
+ describe "new" do
361
+ it "show the new form" do
362
+ get :new, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
363
+ response.should have_tag("form#re_rule_new_form") do
364
+ with_tag("input#<%=rule_name%>_title")
365
+ with_tag("input#<%=rule_name%>_words_0_word")
366
+ with_tag("select#<%=rule_name%>_workflow_action")
367
+ with_tag("input#<%=rule_name%>_workflow")
368
+ end
369
+ end
364
370
  end
365
- end
366
371
 
367
- describe "edit" do
368
- it "show the edit form" do
369
- re_rule = ReRule.make(:re_workflow_id => @re_workflow.id,
370
- :rule_class_name => "RulesEngine::Rule::<%=rule_class%>",
371
- :data => valid_<%=rule_name%>_rule_data)
372
- ReRule.stub!(:find).and_return(re_rule)
372
+ describe "edit" do
373
+ it "show the edit form" do
374
+ re_rule = ReRule.make(:re_workflow_id => @re_workflow.id,
375
+ :rule_class_name => "RulesEngine::Rule::<%=rule_class%>",
376
+ :data => valid_<%=rule_name%>_rule_data)
377
+ ReRule.stub!(:find).and_return(re_rule)
373
378
 
374
- get :edit, :re_workflow_id => @re_workflow.id, :re_rule_id => 1001, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
375
- response.should have_tag("form#re_rule_edit_form") do
376
- with_tag("input#<%=rule_name%>_title", :value => 'Rule Title')
377
- with_tag("input#<%=rule_name%>_words_0_word", :value => 'word one')
378
- with_tag("input#<%=rule_name%>_words_1_word", :value => 'word two')
379
- with_tag("select#<%=rule_name%>_workflow_action", :value => 'start_workflow')
380
- with_tag("input#<%=rule_name%>_workflow", :value => 'Other Workflow')
381
- end
379
+ get :edit, :re_workflow_id => @re_workflow.id, :re_rule_id => 1001, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
380
+ response.should have_tag("form#re_rule_edit_form") do
381
+ with_tag("input#<%=rule_name%>_title", :value => 'Rule Title')
382
+ with_tag("input#<%=rule_name%>_words_0_word", :value => 'word one')
383
+ with_tag("input#<%=rule_name%>_words_1_word", :value => 'word two')
384
+ with_tag("select#<%=rule_name%>_workflow_action", :value => 'start_workflow')
385
+ with_tag("input#<%=rule_name%>_workflow", :value => 'Other Workflow')
386
+ end
387
+ end
382
388
  end
383
389
  end
384
-
385
390
  end