rules_engine_templates 0.0.6 → 0.3.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (98) hide show
  1. data/README.textile +82 -0
  2. data/VERSION +1 -1
  3. data/generators/manifests/plan_start.rb +25 -0
  4. data/{rails_generators → generators}/manifests/plan_start.yml +0 -0
  5. data/{rails_generators → generators/manifests}/templates/app/controllers/rules/tweet_word_writer_controller.rb +0 -0
  6. data/{rails_generators → generators/manifests}/templates/app/rules/plan_start.rb +0 -0
  7. data/{rails_generators → generators/manifests}/templates/app/rules/tweet_filter.rb +0 -0
  8. data/{rails_generators → generators/manifests}/templates/app/rules/tweet_filter_rt.rb +0 -0
  9. data/{rails_generators → generators/manifests}/templates/app/rules/tweet_reader.rb +0 -0
  10. data/{rails_generators → generators/manifests}/templates/app/rules/tweet_word_filter.rb +0 -0
  11. data/{rails_generators → generators/manifests}/templates/app/rules/tweet_word_splitter.rb +0 -0
  12. data/{rails_generators → generators/manifests}/templates/app/rules/tweet_word_writer.rb +0 -0
  13. data/{rails_generators → generators/manifests}/templates/app/rules/workflow_start.rb +0 -0
  14. data/{rails_generators → generators/manifests}/templates/app/rules/workflow_stop.rb +0 -0
  15. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/plan_start/_edit.html.erb +0 -0
  16. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/plan_start/_form.html.erb +1 -1
  17. data/generators/manifests/templates/app/views/re_rules/plan_start/_help.html.erb +1 -0
  18. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/plan_start/_new.html.erb +0 -0
  19. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_filter/_edit.html.erb +0 -0
  20. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_filter/_form.html.erb +4 -4
  21. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_filter/_form_word.html.erb +0 -0
  22. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_filter/_help.html.erb +0 -0
  23. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_filter/_new.html.erb +0 -0
  24. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_filter_rt/_edit.html.erb +0 -0
  25. data/{rails_generators/templates/app/views/re_rules/tweet_word_writer → generators/manifests/templates/app/views/re_rules/tweet_filter_rt}/_form.html.erb +2 -2
  26. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_filter_rt/_help.html.erb +0 -0
  27. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_filter_rt/_new.html.erb +0 -0
  28. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_reader/_edit.html.erb +0 -0
  29. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_reader/_form.html.erb +1 -1
  30. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_reader/_help.html.erb +0 -0
  31. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_reader/_new.html.erb +0 -0
  32. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_filter/_edit.html.erb +0 -0
  33. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_filter/_form.html.erb +4 -4
  34. data/generators/manifests/templates/app/views/re_rules/tweet_word_filter/_form_word.html.erb +13 -0
  35. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_filter/_help.html.erb +0 -0
  36. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_filter/_new.html.erb +0 -0
  37. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_splitter/_edit.html.erb +0 -0
  38. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_splitter/_form.html.erb +1 -1
  39. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_splitter/_help.html.erb +0 -0
  40. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_splitter/_new.html.erb +0 -0
  41. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_writer/_edit.html.erb +0 -0
  42. data/{rails_generators/templates/app/views/re_rules/tweet_filter_rt → generators/manifests/templates/app/views/re_rules/tweet_word_writer}/_form.html.erb +2 -2
  43. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_writer/_help.html.erb +0 -0
  44. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_writer/_new.html.erb +0 -0
  45. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/tweet_word_writer/index.html.erb +0 -0
  46. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/workflow_start/_edit.html.erb +0 -0
  47. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/workflow_start/_form.html.erb +1 -1
  48. data/generators/manifests/templates/app/views/re_rules/workflow_start/_help.html.erb +1 -0
  49. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/workflow_start/_new.html.erb +0 -0
  50. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/workflow_stop/_edit.html.erb +0 -0
  51. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/workflow_stop/_form.html.erb +1 -1
  52. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/workflow_stop/_help.html.erb +0 -0
  53. data/{rails_generators → generators/manifests}/templates/app/views/re_rules/workflow_stop/_new.html.erb +0 -0
  54. data/{rails_generators → generators/manifests}/templates/db/migrate/20100725233933_create_re_tweet_reader_data.rb +0 -0
  55. data/{rails_generators → generators/manifests}/templates/db/migrate/20100727235508_create_tweet_word_writer.rb +0 -0
  56. data/{rails_generators → generators/manifests}/templates/spec/lib/rules/plan_start_spec.rb +15 -13
  57. data/{rails_generators → generators/manifests}/templates/spec/lib/rules/tweet_filter_rt_spec.rb +13 -11
  58. data/{rails_generators → generators/manifests}/templates/spec/lib/rules/tweet_filter_spec.rb +36 -16
  59. data/{rails_generators → generators/manifests}/templates/spec/lib/rules/tweet_reader_spec.rb +17 -15
  60. data/{rails_generators → generators/manifests}/templates/spec/lib/rules/tweet_word_filter_spec.rb +35 -17
  61. data/{rails_generators → generators/manifests}/templates/spec/lib/rules/tweet_word_splitter_spec.rb +13 -11
  62. data/{rails_generators → generators/manifests}/templates/spec/lib/rules/tweet_word_writer_spec.rb +13 -11
  63. data/{rails_generators → generators/manifests}/templates/spec/lib/rules/workflow_start_spec.rb +17 -15
  64. data/{rails_generators → generators/manifests}/templates/spec/lib/rules/workflow_stop_spec.rb +13 -11
  65. data/generators/manifests/tweet_filter.rb +26 -0
  66. data/{rails_generators → generators}/manifests/tweet_filter.yml +0 -0
  67. data/generators/manifests/tweet_filter_rt.rb +25 -0
  68. data/{rails_generators → generators}/manifests/tweet_filter_rt.yml +0 -0
  69. data/generators/manifests/tweet_reader.rb +27 -0
  70. data/{rails_generators → generators}/manifests/tweet_reader.yml +0 -0
  71. data/generators/manifests/tweet_word_filter.rb +26 -0
  72. data/{rails_generators → generators}/manifests/tweet_word_filter.yml +1 -0
  73. data/generators/manifests/tweet_word_splitter.rb +25 -0
  74. data/{rails_generators → generators}/manifests/tweet_word_splitter.yml +0 -0
  75. data/generators/manifests/tweet_word_writer.rb +39 -0
  76. data/{rails_generators → generators}/manifests/tweet_word_writer.yml +0 -0
  77. data/generators/manifests/workflow_start.rb +25 -0
  78. data/{rails_generators → generators}/manifests/workflow_start.yml +0 -0
  79. data/generators/manifests/workflow_stop.rb +26 -0
  80. data/{rails_generators → generators}/manifests/workflow_stop.yml +0 -0
  81. data/generators/rule_generator.rb +59 -0
  82. data/init.rb +1 -0
  83. data/lib/rules_engine_templates.rb +3 -0
  84. data/lib/rules_engine_templates/engine.rb +10 -0
  85. metadata +155 -92
  86. data/README.rdoc +0 -17
  87. data/rails_generators/manifests/plan_start.rb +0 -29
  88. data/rails_generators/manifests/tweet_filter.rb +0 -30
  89. data/rails_generators/manifests/tweet_filter_rt.rb +0 -29
  90. data/rails_generators/manifests/tweet_reader.rb +0 -31
  91. data/rails_generators/manifests/tweet_word_filter.rb +0 -29
  92. data/rails_generators/manifests/tweet_word_splitter.rb +0 -29
  93. data/rails_generators/manifests/tweet_word_writer.rb +0 -43
  94. data/rails_generators/manifests/workflow_start.rb +0 -29
  95. data/rails_generators/manifests/workflow_stop.rb +0 -30
  96. data/rails_generators/rules_engine_templates_generator.rb +0 -43
  97. data/rails_generators/templates/app/views/re_rules/plan_start/_help.html.erb +0 -1
  98. data/rails_generators/templates/app/views/re_rules/workflow_start/_help.html.erb +0 -1
@@ -0,0 +1,82 @@
1
+ h1. Ruby and Rails Rules Engine Framework
2
+
3
+ h4. More detailed documentation at "www.r3ef.com":http://www.r3ef.com
4
+
5
+ h2. Templates
6
+
7
+ h3. Plan Start
8
+
9
+ Run a new plan and pass on the current data
10
+
11
+ <pre>
12
+ script/rails generate rules_engine_templates:rule plan_start [rule name]
13
+ </pre>
14
+
15
+ h3. Workflow Start
16
+
17
+ Start a workflow
18
+
19
+ <pre>
20
+ script/rails generate rules_engine_templates:rule workflow_start [rule name]
21
+ </pre>
22
+
23
+ h3. Workflow Stop
24
+
25
+ Stop the workflow and plan
26
+
27
+ <pre>
28
+ script/rails generate rules_engine_templates:rule workflow_stop [rule name]
29
+ </pre>
30
+
31
+
32
+ h3. Twitter Reader
33
+
34
+ Search twitter for responses
35
+
36
+ <pre>
37
+ script/rails generate rules_engine_templates:rule tweet_reader [rule name]
38
+ rake db:migrate
39
+ </pre>
40
+
41
+ h3. Twitter Filter
42
+
43
+ Filter twitter messages
44
+
45
+ <pre>
46
+ script/rails generate rules_engine_templates:rule tweet_filter [rule name]
47
+ </pre>
48
+
49
+ h3. Twitter Filter Retweets
50
+
51
+ Filter twitter retweets
52
+
53
+ <pre>
54
+ script/rails generate rules_engine_templates:rule tweet_filter_rt [rule name]
55
+ </pre>
56
+
57
+ h3. Twitter Word Splitter
58
+
59
+ Split the twitter message into individual words for processing
60
+
61
+ <pre>
62
+ script/rails generate rules_engine_templates:rule tweet_word_splitter [rule name]
63
+ </pre>
64
+
65
+ h3. Twitter Word Filter
66
+
67
+ Filter out twitter messages with matching words
68
+
69
+ <pre>
70
+ script/rails generate rules_engine_templates:rule tweet_word_filter [rule name]
71
+ </pre>
72
+
73
+
74
+ h3. Twitter Word Writer
75
+
76
+ Write the words to the database for processing
77
+
78
+ <pre>
79
+ script/rails generate rules_engine_templates:rule tweet_word_writer [rule name]
80
+ rake db:migrate
81
+ </pre>
82
+
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.0.6
1
+ 0.3.0
@@ -0,0 +1,25 @@
1
+ class PlanStartManifest
2
+ def self.populate_record(m, rule_name)
3
+
4
+ %W(
5
+ app/rules
6
+ app/views/re_rules/#{rule_name}
7
+ spec/lib/rules
8
+ ).each do |dirname|
9
+ m.empty_directory dirname
10
+ end
11
+
12
+ %W(
13
+ ).each do |filename|
14
+ m.copy_file filename, filename
15
+ end
16
+
17
+ m.template "app/rules/plan_start.rb", "app/rules/#{rule_name}.rb"
18
+ m.template "app/views/re_rules/plan_start/_edit.html.erb", "app/views/re_rules/#{rule_name}/_edit.html.erb"
19
+ m.template "app/views/re_rules/plan_start/_form.html.erb", "app/views/re_rules/#{rule_name}/_form.html.erb"
20
+ m.template "app/views/re_rules/plan_start/_help.html.erb", "app/views/re_rules/#{rule_name}/_help.html.erb"
21
+ m.template "app/views/re_rules/plan_start/_new.html.erb", "app/views/re_rules/#{rule_name}/_new.html.erb"
22
+ m.template "spec/lib/rules/plan_start_spec.rb", "spec/lib/rules/#{rule_name}_spec.rb"
23
+
24
+ end
25
+ end
@@ -1,4 +1,4 @@
1
- <%% javascript_tag do %>
1
+ <%%= javascript_tag do %>
2
2
 
3
3
  $(document).ready(function() {
4
4
  $('#<%=rule_name%>_title').focus();
@@ -0,0 +1 @@
1
+ <p>Run a new plan and pass on the current data</p>
@@ -1,4 +1,4 @@
1
- <%% javascript_tag do %>
1
+ <%%= javascript_tag do %>
2
2
  var new_<%=rule_name%> = '<%%=escape_javascript(render("/re_rules/<%=rule_name%>/form_word"))%>'
3
3
 
4
4
  $(document).ready(function() {
@@ -18,13 +18,13 @@
18
18
 
19
19
  <%% position = 0 %>
20
20
  <%% (@re_rule.rule.match_words || []).each do | word | %>
21
- <%% f.fields_for :rule_data, {:first => false} do |frd| %>
21
+ <%%= f.fields_for :rule_data, {:first => false} do |frd| %>
22
22
  <%%= render '/re_rules/<%=rule_name%>/form_word', :f => frd, :position => position, :word => word %>
23
23
  <%% position += 1 %>
24
24
  <%% end %>
25
25
  <%% end %>
26
26
  <%% if position == 0 %>
27
- <%% f.fields_for :rule_data, {:first => false} do |frd| %>
27
+ <%%= f.fields_for :rule_data, {:first => false} do |frd| %>
28
28
  <%%= render '/re_rules/<%=rule_name%>/form_word', :f => frd, :position => position %>
29
29
  <%% end %>
30
30
  <%% end %>
@@ -40,5 +40,5 @@ q<%%= re_select "Match Type", '<%=rule_name%>_match_type',
40
40
  ["Begins With", RulesEngine::Rule::<%=rule_class%>::TWEET_MATCH_BEGIN_WITH],
41
41
  ["End With", RulesEngine::Rule::<%=rule_class%>::TWEET_MATCH_END_WITH]
42
42
  ],
43
- params['<%=rule_name%>_match_type'].to_i || @re_rule.rule.match_type),
43
+ params['<%=rule_name%>_match_type'] || @re_rule.rule.match_type),
44
44
  :required => true %>
@@ -1,5 +1,4 @@
1
- <%% javascript_tag do %>
2
-
1
+ <%%= javascript_tag do %>
3
2
  $(document).ready(function() {
4
3
  $('#<%=rule_name%>_title').focus();
5
4
  });
@@ -14,3 +13,4 @@
14
13
  :required => true,
15
14
  :error => @re_rule.rule.errors[:<%=rule_name%>_title],
16
15
  :span => '4x13' %>
16
+
@@ -1,4 +1,4 @@
1
- <%% javascript_tag do %>
1
+ <%%= javascript_tag do %>
2
2
 
3
3
  $(document).ready(function() {
4
4
  $('#<%=rule_name%>_title').focus();
@@ -1,4 +1,4 @@
1
- <%% javascript_tag do %>
1
+ <%%= javascript_tag do %>
2
2
  var new_<%=rule_name%> = '<%%=escape_javascript(render("/re_rules/<%=rule_name%>/form_word"))%>'
3
3
 
4
4
  $(document).ready(function() {
@@ -18,13 +18,13 @@
18
18
 
19
19
  <%% position = 0 %>
20
20
  <%% (@re_rule.rule.match_words || []).each do | word | %>
21
- <%% f.fields_for :rule_data, {:first => false} do |frd| %>
21
+ <%%= f.fields_for :rule_data, {:first => false} do |frd| %>
22
22
  <%%= render '/re_rules/<%=rule_name%>/form_word', :f => frd, :position => position, :word => word %>
23
23
  <%% position += 1 %>
24
24
  <%% end %>
25
25
  <%% end %>
26
26
  <%% if position == 0 %>
27
- <%% f.fields_for :rule_data, {:first => false} do |frd| %>
27
+ <%%= f.fields_for :rule_data, {:first => false} do |frd| %>
28
28
  <%%= render '/re_rules/<%=rule_name%>/form_word', :f => frd, :position => position %>
29
29
  <%% end %>
30
30
  <%% end %>
@@ -41,5 +41,5 @@
41
41
  ["Begins With", RulesEngine::Rule::<%=rule_class%>::WORD_MATCH_BEGIN_WITH],
42
42
  ["End With", RulesEngine::Rule::<%=rule_class%>::WORD_MATCH_END_WITH]
43
43
  ],
44
- params['<%=rule_name%>_match_type'].to_i || @re_rule.rule.match_type),
44
+ params['<%=rule_name%>_match_type'] || @re_rule.rule.match_type),
45
45
  :required => true %>
@@ -0,0 +1,13 @@
1
+ <%% id = local_assigns[:position] ? position : 'NEW_RECORD' %>
2
+
3
+ <div id="<%=rule_name%>_<%%=id%>">
4
+ <%%= re_text_field "Words to filter", "<%=rule_name%>_match_words[#{id}][word]",
5
+ local_assigns[:word] ? word : '',
6
+ :size => 25,
7
+ :required => id == 0,
8
+ :span => '4x13',
9
+ :error => id == 0 ? @re_rule.rule.errors[:<%=rule_name%>_match_words] : nil,
10
+ :hint => re_remove_link("Remove", "<%=rule_name%>[#{id}]", id) %>
11
+
12
+ <%%= re_remove_field("<%=rule_name%>[#{id}]", id) %>
13
+ </div>
@@ -1,4 +1,4 @@
1
- <%% javascript_tag do %>
1
+ <%%= javascript_tag do %>
2
2
 
3
3
  $(document).ready(function() {
4
4
  $('#<%=rule_name%>_title').focus();
@@ -1,4 +1,5 @@
1
- <%% javascript_tag do %>
1
+ <%%= javascript_tag do %>
2
+
2
3
  $(document).ready(function() {
3
4
  $('#<%=rule_name%>_title').focus();
4
5
  });
@@ -13,4 +14,3 @@
13
14
  :required => true,
14
15
  :error => @re_rule.rule.errors[:<%=rule_name%>_title],
15
16
  :span => '4x13' %>
16
-
@@ -1,4 +1,4 @@
1
- <%% javascript_tag do %>
1
+ <%%= javascript_tag do %>
2
2
 
3
3
  $(document).ready(function() {
4
4
  $('#<%=rule_name%>_title').focus();
@@ -1,4 +1,4 @@
1
- <%% javascript_tag do %>
1
+ <%%= javascript_tag do %>
2
2
 
3
3
  $(document).ready(function() {
4
4
  $('#<%=rule_name%>_title').focus();
@@ -191,8 +191,10 @@ describe RulesEngine::Rule::<%=rule_class%> do
191
191
  end
192
192
 
193
193
 
194
- describe ReWorkflowRulesController, :type => :controller do
195
- integrate_views
194
+ describe ReWorkflowRulesController do
195
+ include RSpec::Rails::ControllerExampleGroup
196
+
197
+ render_views
196
198
 
197
199
  describe "RulesEngine::Rule::<%=rule_class%>" do
198
200
  before(:each) do
@@ -203,38 +205,38 @@ describe ReWorkflowRulesController, :type => :controller do
203
205
  controller.stub!(:rules_engine_reader_access_required).and_return(true)
204
206
  controller.stub!(:rules_engine_editor_access_required).and_return(true)
205
207
 
206
- @re_workflow = ReWorkflow.make
208
+ @re_workflow = ReWorkflow.create!(:code => "valid code", :title => 'Valid title', :description => 'Test Workflow')
207
209
  ReWorkflow.stub!(:find).and_return(@re_workflow)
208
210
  end
209
211
 
210
212
  describe "help" do
211
213
  it "should assign the tweet reader_rule class" do
212
- get :help, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
214
+ get :help, :re_workflow_id => @re_workflow.id, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
213
215
  assigns[:rule_class].should == RulesEngine::Rule::<%=rule_class%>
214
216
  end
215
217
  end
216
218
 
217
219
  describe "new" do
218
220
  it "show the new form class" do
219
- get :new, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
220
- response.should have_tag("form#re_rule_new_form") do
221
- with_tag("input#<%=rule_name%>_title")
222
- with_tag("input#<%=rule_name%>_plan_code")
221
+ get :new, :re_workflow_id => @re_workflow.id, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
222
+ response.should have_selector("form#re_rule_new_form") do |form|
223
+ form.should have_selector("input#<%=rule_name%>_title")
224
+ form.should have_selector("input#<%=rule_name%>_plan_code")
223
225
  end
224
226
  end
225
227
  end
226
228
 
227
229
  describe "edit" do
228
230
  it "show the edit form" do
229
- re_rule = ReRule.make(:re_workflow_id => @re_workflow.id,
231
+ re_rule = ReRule.create!(:re_workflow_id => @re_workflow.id,
230
232
  :rule_class_name => "RulesEngine::Rule::<%=rule_class%>",
231
233
  :data => valid_<%=rule_name%>_rule_data)
232
234
  ReRule.stub!(:find).and_return(re_rule)
233
235
 
234
- get :edit, :re_workflow_id => @re_workflow.id, :re_rule_id => 1001, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
235
- response.should have_tag("form#re_rule_edit_form") do
236
- with_tag("input#<%=rule_name%>_title", :value => 'Rule Title')
237
- with_tag("input#<%=rule_name%>_plan_code", :value => 'Other Plan')
236
+ get :edit, :re_workflow_id => @re_workflow.id, :id => 1001, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
237
+ response.should have_selector("form#re_rule_edit_form") do |form|
238
+ form.should have_selector("input#<%=rule_name%>_title", :value => 'Rule Title')
239
+ form.should have_selector("input#<%=rule_name%>_plan_code", :value => 'Other Plan')
238
240
  end
239
241
  end
240
242
  end
@@ -162,8 +162,10 @@ describe RulesEngine::Rule::<%=rule_class%> do
162
162
  end
163
163
  end
164
164
 
165
- describe ReWorkflowRulesController, :type => :controller do
166
- integrate_views
165
+ describe ReWorkflowRulesController do
166
+ include RSpec::Rails::ControllerExampleGroup
167
+
168
+ render_views
167
169
 
168
170
  describe "RulesEngine::Rule::<%=rule_class%>" do
169
171
 
@@ -175,36 +177,36 @@ describe ReWorkflowRulesController, :type => :controller do
175
177
  controller.stub!(:rules_engine_reader_access_required).and_return(true)
176
178
  controller.stub!(:rules_engine_editor_access_required).and_return(true)
177
179
 
178
- @re_workflow = ReWorkflow.make
180
+ @re_workflow = ReWorkflow.create!(:code => "valid code", :title => 'Valid title', :description => 'Test Workflow')
179
181
  ReWorkflow.stub!(:find).and_return(@re_workflow)
180
182
  end
181
183
 
182
184
  describe "help" do
183
185
  it "should assign the <%=rule_name%> rule class" do
184
- get :help, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
186
+ get :help, :re_workflow_id => @re_workflow.id, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
185
187
  assigns[:rule_class].should == RulesEngine::Rule::<%=rule_class%>
186
188
  end
187
189
  end
188
190
 
189
191
  describe "new" do
190
192
  it "show the new form" do
191
- get :new, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
192
- response.should have_tag("form#re_rule_new_form") do
193
- with_tag("input#<%=rule_name%>_title")
193
+ get :new, :re_workflow_id => @re_workflow.id, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
194
+ response.should have_selector("form#re_rule_new_form") do |form|
195
+ form.should have_selector("input#<%=rule_name%>_title")
194
196
  end
195
197
  end
196
198
  end
197
199
 
198
200
  describe "edit" do
199
201
  it "show the edit form" do
200
- re_rule = ReRule.make(:re_workflow_id => @re_workflow.id,
202
+ re_rule = ReRule.create!(:re_workflow_id => @re_workflow.id,
201
203
  :rule_class_name => "RulesEngine::Rule::<%=rule_class%>",
202
204
  :data => valid_<%=rule_name%>_rule_data)
203
205
  ReRule.stub!(:find).and_return(re_rule)
204
206
 
205
- get :edit, :re_workflow_id => @re_workflow.id, :re_rule_id => 1001, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
206
- response.should have_tag("form#re_rule_edit_form") do
207
- with_tag("input#<%=rule_name%>_title", :value => 'Rule Title')
207
+ get :edit, :re_workflow_id => @re_workflow.id, :id => 1001, :rule_class_name => "RulesEngine::Rule::<%=rule_class%>"
208
+ response.should have_selector("form#re_rule_edit_form") do |form|
209
+ form.should have_selector("input#<%=rule_name%>_title", :value => 'Rule Title')
208
210
  end
209
211
  end
210
212
  end