rules_engine 0.1.6 → 0.1.7

Sign up to get free protection for your applications and to get access to all the features.
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