authorized_rails_scaffolds 0.0.4 → 0.0.5

Sign up to get free protection for your applications and to get access to all the features.
Files changed (18) hide show
  1. data/README.md +2 -4
  2. data/lib/authorized_rails_scaffolds/version.rb +1 -1
  3. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/_form.html.erb +14 -5
  4. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/controller.rb +21 -16
  5. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/edit.html.erb +6 -1
  6. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/index.html.erb +23 -14
  7. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/new.html.erb +6 -1
  8. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/show.html.erb +37 -12
  9. data/lib/generators/authorized_rails_scaffolds/install_spec/install_spec_generator.rb +28 -7
  10. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/controller_spec.rb +71 -65
  11. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/devise_can_can/USAGE +7 -0
  12. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/devise_can_can/controller_macros.rb +25 -0
  13. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/edit_spec.rb +57 -43
  14. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/index_spec.rb +81 -59
  15. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/model_spec.rb +28 -0
  16. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/new_spec.rb +53 -39
  17. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/show_spec.rb +85 -37
  18. metadata +11 -8
data/README.md CHANGED
@@ -55,11 +55,9 @@ For example:
55
55
  rails g model FooBar name:string age:integer date_of_birth:date lunch_time:time programmer:boolean joined_at:datetime
56
56
  rails g scaffold_controller Awesome/FooBar name:string age:integer date_of_birth:date lunch_time:time programmer:boolean joined_at:datetime
57
57
 
58
- ### Install Spec Temlates
58
+ ### Install Spec Templates
59
59
 
60
- `authorized_rails_scaffolds` provides a series of rspec generators that replace the default controller and view spec templates generated by RSpec. It will also add a ControllerMacros spec support helper to login and logout users.
61
-
62
- The generated specs assume you are have a FactoryGirl factory called `user`.
60
+ `authorized_rails_scaffolds` provides a series of rspec generators that replace the default controller and view spec templates generated by RSpec.
63
61
 
64
62
  You can install the generators by running:
65
63
 
@@ -1,3 +1,3 @@
1
1
  module AuthorizedRailsScaffolds
2
- VERSION = "0.0.4"
2
+ VERSION = "0.0.5"
3
3
  end
@@ -1,7 +1,14 @@
1
- <%- singular_var_name = file_name -%>
2
- <%- a = singular_table_name.split(file_name, -1)[0..-2].join(file_name) %>
3
- <%- form_object_vars = a.blank? ? "@#{singular_var_name}" : "[:#{a.split('_').join(', :')}, @#{singular_var_name}]" -%>
4
- <%%= simple_form_for(<%= form_object_vars %>, :html => { class: 'form-horizontal' }) do |f| %>
1
+ <%-
2
+
3
+ local_class_name = file_name.classify # Non-Namespaced class name
4
+ var_name = file_name # Non-namespaced variable name
5
+ plural_var_name = var_name.pluralize # Pluralized non-namespaced variable name
6
+
7
+ form_objects = singular_table_name.split(file_name, -1)[0..-2].join(file_name)
8
+ form_object_array = form_objects.blank? ? "@#{var_name}" : "[:#{form_objects.split('_').join(', :')}, @#{var_name}]"
9
+
10
+ -%>
11
+ <%%= simple_form_for(<%= form_object_array %>, :html => { class: 'form-horizontal' }) do |f| %>
5
12
  <%%= f.error_notification %>
6
13
 
7
14
  <div class="form-inputs">
@@ -13,6 +20,8 @@
13
20
  <div class="form-actions">
14
21
  <%%= f.button :submit, :class => 'btn-primary' %>
15
22
  <%%= link_to t('.cancel', :default => t("helpers.links.cancel")),
16
- <%= index_helper %>_path, :class => 'btn' %>
23
+ <%= index_helper %>_path,
24
+ :class => 'btn'
25
+ %>
17
26
  </div>
18
27
  <%% end %>
@@ -2,10 +2,15 @@
2
2
  require_dependency "<%= namespaced_file_path %>/application_controller"
3
3
 
4
4
  <% end -%>
5
- <%- singular_var_name = file_name -%>
6
- <%- plural_var_name = file_name.pluralize -%>
7
- <%- local_class_name = class_name.split("::")[-1] -%>
8
- <%- orm_instance = Rails::Generators::ActiveModel.new singular_var_name -%>
5
+ <%-
6
+
7
+ local_class_name = local_class_name = class_name.split("::")[-1] # Non-Namespaced class name
8
+ var_name = file_name # Non-namespaced variable name
9
+ plural_var_name = var_name.pluralize # Pluralized non-namespaced variable name
10
+
11
+ orm_instance = Rails::Generators::ActiveModel.new var_name
12
+
13
+ -%>
9
14
  <% module_namespacing do -%>
10
15
  class <%= controller_class_name %>Controller < ApplicationController
11
16
  load_and_authorize_resource
@@ -24,39 +29,39 @@ class <%= controller_class_name %>Controller < ApplicationController
24
29
  # GET <%= route_url %>/1
25
30
  # GET <%= route_url %>/1.json
26
31
  def show
27
- # @<%= singular_var_name %> = <%= orm_class.find(local_class_name, "params[:id]") %>
32
+ # @<%= var_name %> = <%= orm_class.find(local_class_name, "params[:id]") %>
28
33
 
29
34
  respond_to do |format|
30
35
  format.html # show.html.erb
31
- format.json { render <%= key_value :json, "@#{singular_var_name}" %> }
36
+ format.json { render <%= key_value :json, "@#{var_name}" %> }
32
37
  end
33
38
  end
34
39
 
35
40
  # GET <%= route_url %>/new
36
41
  # GET <%= route_url %>/new.json
37
42
  def new
38
- # @<%= singular_var_name %> = <%= orm_class.build(local_class_name) %>
43
+ # @<%= var_name %> = <%= orm_class.build(local_class_name) %>
39
44
 
40
45
  respond_to do |format|
41
46
  format.html # new.html.erb
42
- format.json { render <%= key_value :json, "@#{singular_var_name}" %> }
47
+ format.json { render <%= key_value :json, "@#{var_name}" %> }
43
48
  end
44
49
  end
45
50
 
46
51
  # GET <%= route_url %>/1/edit
47
52
  def edit
48
- # @<%= singular_var_name %> = <%= orm_class.find(local_class_name, "params[:id]") %>
53
+ # @<%= var_name %> = <%= orm_class.find(local_class_name, "params[:id]") %>
49
54
  end
50
55
 
51
56
  # POST <%= route_url %>
52
57
  # POST <%= route_url %>.json
53
58
  def create
54
- # @<%= singular_var_name %> = <%= orm_class.build(local_class_name, "params[:#{singular_var_name}]") %>
59
+ # @<%= var_name %> = <%= orm_class.build(local_class_name, "params[:#{var_name}]") %>
55
60
 
56
61
  respond_to do |format|
57
62
  if @<%= orm_instance.save %>
58
- format.html { redirect_to <%= singular_table_name %>_path(@<%= singular_var_name %>), <%= key_value :notice, "'#{human_name} was successfully created.'" %> }
59
- format.json { render <%= key_value :json, "@#{singular_var_name}" %>, <%= key_value :status, ':created' %>, <%= key_value :location, "#{singular_table_name}_path(@#{singular_var_name})" %> }
63
+ format.html { redirect_to <%= singular_table_name %>_path(@<%= var_name %>), <%= key_value :notice, "'#{human_name} was successfully created.'" %> }
64
+ format.json { render <%= key_value :json, "@#{var_name}" %>, <%= key_value :status, ':created' %>, <%= key_value :location, "#{singular_table_name}_path(@#{var_name})" %> }
60
65
  else
61
66
  format.html { render <%= key_value :action, '"new"' %> }
62
67
  format.json { render <%= key_value :json, "@#{orm_instance.errors}" %>, <%= key_value :status, ':unprocessable_entity' %> }
@@ -67,11 +72,11 @@ class <%= controller_class_name %>Controller < ApplicationController
67
72
  # PUT <%= route_url %>/1
68
73
  # PUT <%= route_url %>/1.json
69
74
  def update
70
- # @<%= singular_var_name %> = <%= orm_class.find(local_class_name, "params[:id]") %>
75
+ # @<%= var_name %> = <%= orm_class.find(local_class_name, "params[:id]") %>
71
76
 
72
77
  respond_to do |format|
73
- if @<%= orm_instance.update_attributes("params[:#{singular_var_name}]") %>
74
- format.html { redirect_to <%= singular_table_name %>_path(@<%= singular_var_name %>), <%= key_value :notice, "'#{human_name} was successfully updated.'" %> }
78
+ if @<%= orm_instance.update_attributes("params[:#{var_name}]") %>
79
+ format.html { redirect_to <%= singular_table_name %>_path(@<%= var_name %>), <%= key_value :notice, "'#{human_name} was successfully updated.'" %> }
75
80
  format.json { head :no_content }
76
81
  else
77
82
  format.html { render <%= key_value :action, '"edit"' %> }
@@ -83,7 +88,7 @@ class <%= controller_class_name %>Controller < ApplicationController
83
88
  # DELETE <%= route_url %>/1
84
89
  # DELETE <%= route_url %>/1.json
85
90
  def destroy
86
- # @<%= singular_var_name %> = <%= orm_class.find(local_class_name, "params[:id]") %>
91
+ # @<%= var_name %> = <%= orm_class.find(local_class_name, "params[:id]") %>
87
92
  @<%= orm_instance.destroy %>
88
93
 
89
94
  respond_to do |format|
@@ -1,4 +1,9 @@
1
- <%%- model_class = <%= file_name.classify %> -%>
1
+ <%-
2
+
3
+ local_class_name = file_name.classify # Non-Namespaced class name
4
+
5
+ -%>
6
+ <%%- model_class = <%= local_class_name %> -%>
2
7
  <div class="page-header">
3
8
  <h1><%%=t '.title', :default => [:'helpers.titles.edit', 'Edit %{model}'], :model => model_class.model_name.human %></h1>
4
9
  </div>
@@ -1,6 +1,11 @@
1
- <%- singular_var_name = file_name -%>
2
- <%- plural_var_name = file_name.pluralize-%>
3
- <%%- model_class = <%= file_name.classify %> -%>
1
+ <%-
2
+
3
+ local_class_name = file_name.classify # Non-Namespaced class name
4
+ var_name = file_name # Non-namespaced variable name
5
+ plural_var_name = var_name.pluralize # Pluralized non-namespaced variable name
6
+
7
+ -%>
8
+ <%%- model_class = <%= local_class_name %> -%>
4
9
  <div class="page-header">
5
10
  <h1><%%=t '.title', :default => model_class.model_name.human.pluralize %></h1>
6
11
  </div>
@@ -16,36 +21,40 @@
16
21
  </tr>
17
22
  </thead>
18
23
  <tbody>
19
- <%% @<%= plural_var_name %>.each do |<%= singular_var_name %>| %>
20
- <tr class="<%= singular_var_name %>_<%%= <%= singular_var_name%>.id %>">
21
- <td class="id-column"><%%= <%= singular_var_name %>.id %></td>
24
+ <%% @<%= plural_var_name %>.each do |<%= var_name %>| %>
25
+ <tr class="<%= var_name %>_<%%= <%= var_name %>.id %>">
26
+ <td class="id-column"><%%= <%= var_name %>.id %></td>
22
27
  <%- if attributes.any? -%>
23
- <td class="title-column"><%%= link_to <%= singular_var_name %>.<%= attributes[0].name %>, <%= singular_table_name %>_path(<%= singular_var_name %>) %></td>
28
+ <td class="title-column"><%%= link_to <%= var_name %>.<%= attributes[0].name %>, <%= singular_table_name %>_path(<%= var_name %>) %></td>
24
29
  <%- attributes[1..-1].each do |attribute| -%>
25
30
  <%- if [:datetime, :timestamp, :time, :date].include? attribute.type -%>
26
- <td><%%=l <%= singular_var_name %>.<%= attribute.name %><% if attribute.type == :datetime %>, :format => :long<% end %><% if attribute.type == :time %>, :format => :short<% end %> %></td>
31
+ <td><%% unless <%= var_name %>.<%= attribute.name %>.nil? %><%%=l <%= var_name %>.<%= attribute.name %><% if attribute.type == :datetime %>, :format => :long<% end %><% if attribute.type == :time %>, :format => :short<% end %> %><%% end %></td>
27
32
  <%- else -%>
28
- <td><%%= <%= singular_var_name %>.<%= attribute.name %> %></td>
33
+ <td><%%= <%= var_name %>.<%= attribute.name %> %></td>
29
34
  <%- end -%>
30
35
  <%- end -%>
31
36
  <%- end -%>
32
- <td><%%=l <%= singular_var_name %>.created_at %></td>
37
+ <td><%%=l <%= var_name %>.created_at, :format => :long %></td>
33
38
  <td class="table-actions">
34
39
  <%%= link_to t('.edit', :default => t("helpers.links.edit")),
35
- edit_<%= singular_table_name %>_path(<%= singular_var_name %>), :class => 'btn btn-mini', :disabled => !can?(:update, <%= singular_var_name %>) %>
40
+ edit_<%= singular_table_name %>_path(<%= var_name %>),
41
+ :class => 'btn btn-mini',
42
+ :disabled => !can?(:update, <%= var_name %>)
43
+ %>
36
44
  <%%= link_to t('.destroy', :default => t("helpers.links.destroy")),
37
- <%= singular_table_name %>_path(<%= singular_var_name %>),
45
+ <%= singular_table_name %>_path(<%= var_name %>),
38
46
  :method => :delete,
39
47
  :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')) },
40
48
  :class => 'btn btn-mini btn-danger',
41
- :disabled => !can?(:destroy, <%= singular_var_name %>) %>
49
+ :disabled => !can?(:destroy, <%= var_name %>)
50
+ %>
42
51
  </td>
43
52
  </tr>
44
53
  <%% end %>
45
54
  </tbody>
46
55
  </table>
47
56
 
48
- <%% if can?(:create, <%= file_name.classify %>) %>
57
+ <%% if can?(:create, <%= local_class_name %>) %>
49
58
  <%%= link_to t('.new', :default => t("helpers.links.new")),
50
59
  new_<%= singular_table_name %>_path,
51
60
  :class => 'btn btn-primary' %>
@@ -1,4 +1,9 @@
1
- <%%- model_class = <%= file_name.classify %> -%>
1
+ <%-
2
+
3
+ local_class_name = file_name.classify # Non-Namespaced class name
4
+
5
+ -%>
6
+ <%%- model_class = <%= local_class_name %> -%>
2
7
  <div class="page-header">
3
8
  <h1><%%=t '.title', :default => [:'helpers.titles.new', 'New %{model}'], :model => model_class.model_name.human %></h1>
4
9
  </div>
@@ -1,18 +1,40 @@
1
- <%- singular_var_name = file_name -%>
2
- <%%- model_class = <%= file_name.classify %> -%>
1
+ <%-
2
+
3
+ local_class_name = file_name.classify # Non-Namespaced class name
4
+ var_name = file_name # Non-namespaced variable name
5
+ plural_var_name = var_name.pluralize # Pluralized non-namespaced variable name
6
+
7
+ path_prefix = singular_table_name[0..-(file_name.length+1)]
8
+
9
+ -%>
10
+ <%%- model_class = <%= local_class_name %> -%>
3
11
  <div class="page-header">
4
12
  <h1><%%=t '.title', :default => model_class.model_name.human %></h1>
5
13
  </div>
6
14
 
7
15
  <dl class="dl-horizontal item-summary">
8
16
  <%- attributes.each do |attribute| -%>
9
- <dt><strong><%%= model_class.human_attribute_name(:<%= attribute.name %>) %>:</strong></dt>
10
- <%- if [:datetime, :timestamp, :time, :date].include? attribute.type -%>
11
- <%% unless @<%= singular_var_name %>.nil? %>
12
- <dd><%%=l @<%= singular_var_name %>.<%= attribute.name %><% if attribute.type == :datetime %>, :format => :long<% end %><% if attribute.type == :time %>, :format => :short<% end %> %></dd>
17
+ <%- attribute_label = "model_class.human_attribute_name(:#{attribute.name})" -%>
18
+ <%- if attribute.type == :references -%>
19
+ <%% if @<%= var_name %>.<%= attribute.name %>.present? && can?(:read, @<%= var_name %>.<%= attribute.name %>) %>
20
+ <dt><strong><%%= <%= attribute_label %> %>:</strong></dt>
21
+ <dd><%%= link_to @<%= var_name %>.<%= attribute.name %>, <%= path_prefix %><%= attribute.name %>_path(@<%= var_name %>.<%= attribute.name %>) %></dd>
22
+ <%% end %>
23
+ <%- elsif [:datetime, :timestamp, :time, :date].include? attribute.type -%>
24
+ <%% unless @<%= var_name %>.<%= attribute.name %>.nil? %>
25
+ <dt><strong><%%= <%= attribute_label %> %>:</strong></dt>
26
+ <dd><%%=l @<%= var_name %>.<%= attribute.name %><% if attribute.type == :datetime %>, :format => :long<% end %><% if attribute.type == :time %>, :format => :short<% end %> %></dd>
27
+ <%% end %>
28
+ <%- elsif attribute.type == :string -%>
29
+ <%% unless @<%= var_name %>.<%= attribute.name %>.blank? %>
30
+ <dt><strong><%%= <%= attribute_label %> %>:</strong></dt>
31
+ <dd><%%= @<%= var_name %>.<%= attribute.name %> %></dd>
13
32
  <%% end %>
14
33
  <%- else -%>
15
- <dd><%%= @<%= singular_var_name %>.<%= attribute.name %> %></dd>
34
+ <%% unless @<%= var_name %>.<%= attribute.name %>.nil? %>
35
+ <dt><strong><%%= <%= attribute_label %> %>:</strong></dt>
36
+ <dd><%%= @<%= var_name %>.<%= attribute.name %> %></dd>
37
+ <%% end %>
16
38
  <%- end -%>
17
39
  <%- end -%>
18
40
  </dl>
@@ -20,15 +42,18 @@
20
42
  <div class="form-actions">
21
43
  <%%= link_to t('.back', :default => t("helpers.links.back")),
22
44
  <%= index_helper %>_path, :class => 'btn' %>
23
- <%% if can? :update, @<%= singular_var_name %> %>
45
+ <%% if can? :update, @<%= var_name %> %>
24
46
  <%%= link_to t('.edit', :default => t("helpers.links.edit")),
25
- edit_<%= singular_table_name %>_path(@<%= singular_var_name %>), :class => 'btn' %>
47
+ edit_<%= singular_table_name %>_path(@<%= var_name %>),
48
+ :class => 'btn'
49
+ %>
26
50
  <%% end %>
27
- <%% if can? :destroy, @<%= singular_var_name %> %>
51
+ <%% if can? :destroy, @<%= var_name %> %>
28
52
  <%%= link_to t('.destroy', :default => t("helpers.links.destroy")),
29
- <%= singular_table_name %>_path(@<%= singular_var_name %>),
53
+ <%= singular_table_name %>_path(@<%= var_name %>),
30
54
  :method => 'delete',
31
55
  :data => { :confirm => t('.confirm', :default => t("helpers.links.confirm", :default => 'Are you sure?')) },
32
- :class => 'act act-danger pull-right' %>
56
+ :class => 'act act-danger pull-right'
57
+ %>
33
58
  <%% end %>
34
59
  </div>
@@ -1,17 +1,38 @@
1
1
  class AuthorizedRailsScaffolds::InstallSpecGenerator < Rails::Generators::Base
2
2
  source_root File.expand_path('../templates', __FILE__)
3
3
 
4
- def create_rspec_templates
5
- copy_rspec_template 'controller_spec.rb'
6
- copy_rspec_template 'edit_spec.rb'
7
- copy_rspec_template 'index_spec.rb'
8
- copy_rspec_template 'new_spec.rb'
9
- copy_rspec_template 'show_spec.rb'
4
+ class_option :authentication, :type => 'string', :default => 'devise', :desc => "Authentication Provider (Devise)"
5
+ class_option :authorization, :type => 'string', :default => 'can_can', :desc => "Authorization Provider (CanCan)"
6
+
7
+ def create_model_templates
8
+ copy_model_template 'model_spec.rb'
9
+ end
10
+
11
+ def create_scaffold_templates
12
+ copy_scaffold_template 'controller_spec.rb'
13
+ copy_scaffold_template 'edit_spec.rb'
14
+ copy_scaffold_template 'index_spec.rb'
15
+ copy_scaffold_template 'new_spec.rb'
16
+ copy_scaffold_template 'show_spec.rb'
17
+ end
18
+
19
+ def create_controller_macros
20
+ parts = []
21
+ parts << options[:authentication].underscore unless options[:authentication].nil?
22
+ parts << options[:authorization].underscore unless options[:authorization].nil?
23
+ template_file = parts.any? ? parts.join('_') : nil
24
+
25
+ copy_file [template_file, 'controller_macros.rb'].join('/'), "spec/support/#{template_file}_controller_macros.rb"
26
+ readme [template_file, 'USAGE'].join('/')
10
27
  end
11
28
 
12
29
  protected
13
30
 
14
- def copy_rspec_template(template_name)
31
+ def copy_model_template(template_name)
32
+ copy_file template_name, "lib/templates/rspec/model/#{template_name}"
33
+ end
34
+
35
+ def copy_scaffold_template(template_name)
15
36
  copy_file template_name, "lib/templates/rspec/scaffold/#{template_name}"
16
37
  end
17
38
 
@@ -19,19 +19,25 @@ require 'spec_helper'
19
19
  # that an instance is receiving a specific message.
20
20
 
21
21
  <% module_namespacing do -%>
22
- <%- local_class_name = class_name.split("::")[-1] -%>
22
+ <%-
23
+
24
+ local_class_name = class_name.split('::')[-1] # Non-Namespaced class name
25
+ var_name = file_name # Non-namespaced variable name
26
+ plural_var_name = var_name.pluralize # Pluralized non-namespaced variable name
27
+
28
+ -%>
23
29
  describe <%= controller_class_name %>Controller do
24
30
 
25
31
  # This should return the minimal set of attributes required to create a valid
26
32
  # <%= local_class_name %>.
27
33
  def valid_create_attributes
28
- FactoryGirl.attributes_for(:<%= file_name %>)
34
+ FactoryGirl.attributes_for(:<%= var_name %>)
29
35
  end
30
36
 
31
37
  # This should return the minimal set of attributes required to update a valid
32
38
  # <%= local_class_name %>.
33
39
  def valid_update_attributes
34
- FactoryGirl.attributes_for(:<%= file_name %>)
40
+ FactoryGirl.attributes_for(:<%= var_name %>)
35
41
  end
36
42
 
37
43
  <% unless options[:singleton] -%>
@@ -39,7 +45,7 @@ describe <%= controller_class_name %>Controller do
39
45
  context 'without a user' do
40
46
  describe 'with valid request' do
41
47
  before(:each) do
42
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
48
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
43
49
  get :index, {}
44
50
  end
45
51
  it { should redirect_to(new_user_session_path) }
@@ -50,7 +56,7 @@ describe <%= controller_class_name %>Controller do
50
56
  login_unauthorized_user
51
57
  describe 'with valid request' do
52
58
  before(:each) do
53
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
59
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
54
60
  get :index, {}
55
61
  end
56
62
  it { should redirect_to(root_url) }
@@ -61,14 +67,14 @@ describe <%= controller_class_name %>Controller do
61
67
  login_user_with_ability :read, <%= local_class_name %>
62
68
  describe 'with valid request' do
63
69
  before(:each) do
64
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
70
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
65
71
  get :index, {}
66
72
  end
67
73
  it { should respond_with(:success) }
68
74
  it { should render_template(:index) }
69
75
  it { should render_with_layout(:application) }
70
- it "assigns all <%= file_name.pluralize %> as @<%= file_name.pluralize %>" do
71
- assigns(:<%= file_name.pluralize %>).should eq([@<%= file_name %>])
76
+ it "assigns all <%= plural_var_name %> as @<%= plural_var_name %>" do
77
+ assigns(:<%= plural_var_name %>).should eq([@<%= var_name %>])
72
78
  end
73
79
  end
74
80
  end
@@ -79,8 +85,8 @@ describe <%= controller_class_name %>Controller do
79
85
  context 'without a user' do
80
86
  describe 'with valid request' do
81
87
  before(:each) do
82
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
83
- get :show, {:id => @<%= file_name %>.to_param}
88
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
89
+ get :show, {:id => @<%= var_name %>.to_param}
84
90
  end
85
91
  it { should redirect_to(new_user_session_path) }
86
92
  it { should set_the_flash[:alert].to("You need to sign in or sign up before continuing.") }
@@ -90,8 +96,8 @@ describe <%= controller_class_name %>Controller do
90
96
  login_unauthorized_user
91
97
  describe 'with valid request' do
92
98
  before(:each) do
93
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
94
- get :show, {:id => @<%= file_name %>.to_param}
99
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
100
+ get :show, {:id => @<%= var_name %>.to_param}
95
101
  end
96
102
  it { should redirect_to(<%= index_helper %>_path) }
97
103
  it { should set_the_flash[:alert].to("You are not authorized to access this page.") }
@@ -101,14 +107,14 @@ describe <%= controller_class_name %>Controller do
101
107
  login_user_with_ability :read, <%= local_class_name %>
102
108
  describe 'with valid request' do
103
109
  before(:each) do
104
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
105
- get :show, {:id => @<%= file_name %>.to_param}
110
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
111
+ get :show, {:id => @<%= var_name %>.to_param}
106
112
  end
107
113
  it { should respond_with(:success) }
108
114
  it { should render_template(:show) }
109
115
  it { should render_with_layout(:application) }
110
- it "assigns the requested <%= file_name %> as @<%= file_name %>" do
111
- assigns(:<%= file_name %>).should eq(@<%= file_name %>)
116
+ it "assigns the requested <%= var_name %> as @<%= var_name %>" do
117
+ assigns(:<%= var_name %>).should eq(@<%= var_name %>)
112
118
  end
113
119
  end
114
120
  end
@@ -143,8 +149,8 @@ describe <%= controller_class_name %>Controller do
143
149
  it { should respond_with(:success) }
144
150
  it { should render_template(:new) }
145
151
  it { should render_with_layout(:application) }
146
- it "assigns a new <%= file_name %> as @<%= file_name %>" do
147
- assigns(:<%= file_name %>).should be_a_new(<%= local_class_name %>)
152
+ it "assigns a new <%= var_name %> as @<%= var_name %>" do
153
+ assigns(:<%= var_name %>).should be_a_new(<%= local_class_name %>)
148
154
  end
149
155
  end
150
156
  end
@@ -154,8 +160,8 @@ describe <%= controller_class_name %>Controller do
154
160
  context 'without a user' do
155
161
  describe 'with valid request' do
156
162
  before(:each) do
157
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
158
- get :edit, {:id => @<%= file_name %>.to_param}
163
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
164
+ get :edit, {:id => @<%= var_name %>.to_param}
159
165
  end
160
166
  it { should redirect_to(new_user_session_path) }
161
167
  it { should set_the_flash[:alert].to("You need to sign in or sign up before continuing.") }
@@ -165,8 +171,8 @@ describe <%= controller_class_name %>Controller do
165
171
  login_unauthorized_user
166
172
  describe 'with valid request' do
167
173
  before(:each) do
168
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
169
- get :edit, {:id => @<%= file_name %>.to_param}
174
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
175
+ get :edit, {:id => @<%= var_name %>.to_param}
170
176
  end
171
177
  it { should redirect_to(<%= index_helper %>_url) }
172
178
  it { should set_the_flash[:alert].to("You are not authorized to access this page.") }
@@ -176,14 +182,14 @@ describe <%= controller_class_name %>Controller do
176
182
  login_user_with_ability :update, <%= local_class_name %>
177
183
  describe 'with valid request' do
178
184
  before(:each) do
179
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
180
- get :edit, {:id => @<%= file_name %>.to_param}
185
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
186
+ get :edit, {:id => @<%= var_name %>.to_param}
181
187
  end
182
188
  it { should respond_with(:success) }
183
189
  it { should render_template(:edit) }
184
190
  it { should render_with_layout(:application) }
185
- it "assigns the requested <%= file_name %> as @<%= file_name %>" do
186
- assigns(:<%= file_name %>).should eq(@<%= file_name %>)
191
+ it "assigns the requested <%= var_name %> as @<%= var_name %>" do
192
+ assigns(:<%= var_name %>).should eq(@<%= var_name %>)
187
193
  end
188
194
  end
189
195
  end
@@ -193,7 +199,7 @@ describe <%= controller_class_name %>Controller do
193
199
  context 'without a user' do
194
200
  describe 'with valid params' do
195
201
  before(:each) do
196
- post :create, {:<%= file_name %> => valid_create_attributes}
202
+ post :create, {:<%= var_name %> => valid_create_attributes}
197
203
  end
198
204
  it { should redirect_to(new_user_session_path) }
199
205
  it { should set_the_flash[:alert].to("You need to sign in or sign up before continuing.") }
@@ -203,7 +209,7 @@ describe <%= controller_class_name %>Controller do
203
209
  login_unauthorized_user
204
210
  describe "with valid params" do
205
211
  before(:each) do
206
- post :create, {:<%= file_name %> => valid_create_attributes}
212
+ post :create, {:<%= var_name %> => valid_create_attributes}
207
213
  end
208
214
  it { should redirect_to(<%= index_helper %>_url) }
209
215
  it { should set_the_flash[:alert].to("You are not authorized to access this page.") }
@@ -214,19 +220,19 @@ describe <%= controller_class_name %>Controller do
214
220
  describe "with valid params" do
215
221
  it "creates a new <%= local_class_name %>" do
216
222
  expect {
217
- post :create, {:<%= file_name %> => valid_create_attributes}
223
+ post :create, {:<%= var_name %> => valid_create_attributes}
218
224
  }.to change(<%= local_class_name %>, :count).by(1)
219
225
  end
220
226
  end
221
227
  describe 'with valid params' do
222
228
  before(:each) do
223
- post :create, {:<%= file_name %> => valid_create_attributes}
229
+ post :create, {:<%= var_name %> => valid_create_attributes}
224
230
  end
225
- it "assigns a newly created <%= file_name %> as @<%= file_name %>" do
226
- assigns(:<%= file_name %>).should be_a(<%= local_class_name %>)
227
- assigns(:<%= file_name %>).should be_persisted
231
+ it "assigns a newly created <%= var_name %> as @<%= var_name %>" do
232
+ assigns(:<%= var_name %>).should be_a(<%= local_class_name %>)
233
+ assigns(:<%= var_name %>).should be_persisted
228
234
  end
229
- it "redirects to the created <%= file_name %>" do
235
+ it "redirects to the created <%= var_name %>" do
230
236
  response.should redirect_to(<%= ns_file_name %>_path(<%= local_class_name %>.last))
231
237
  end
232
238
  end
@@ -234,12 +240,12 @@ describe <%= controller_class_name %>Controller do
234
240
  before(:each) do
235
241
  # Trigger the behavior that occurs when invalid params are submitted
236
242
  <%= local_class_name %>.any_instance.stub(:save).and_return(false)
237
- post :create, {:<%= file_name %> => <%= formatted_hash(example_invalid_attributes) %>}
243
+ post :create, {:<%= var_name %> => <%= formatted_hash(example_invalid_attributes) %>}
238
244
  end
239
245
  it { should render_template(:new) }
240
246
  it { should render_with_layout(:application) }
241
- it "assigns a newly created but unsaved <%= file_name %> as @<%= file_name %>" do
242
- assigns(:<%= file_name %>).should be_a_new(<%= local_class_name %>)
247
+ it "assigns a newly created but unsaved <%= var_name %> as @<%= var_name %>" do
248
+ assigns(:<%= var_name %>).should be_a_new(<%= local_class_name %>)
243
249
  end
244
250
  end
245
251
  end
@@ -249,8 +255,8 @@ describe <%= controller_class_name %>Controller do
249
255
  context 'without a user' do
250
256
  describe 'with valid params' do
251
257
  before(:each) do
252
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
253
- put :update, {:id => @<%= file_name %>.to_param, :<%= file_name %> => valid_update_attributes}
258
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
259
+ put :update, {:id => @<%= var_name %>.to_param, :<%= var_name %> => valid_update_attributes}
254
260
  end
255
261
  it { should redirect_to(new_user_session_path) }
256
262
  it { should set_the_flash[:alert].to("You need to sign in or sign up before continuing.") }
@@ -260,8 +266,8 @@ describe <%= controller_class_name %>Controller do
260
266
  login_unauthorized_user
261
267
  describe "with valid params" do
262
268
  before(:each) do
263
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
264
- put :update, {:id => @<%= file_name %>.to_param, :<%= file_name %> => valid_update_attributes}
269
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
270
+ put :update, {:id => @<%= var_name %>.to_param, :<%= var_name %> => valid_update_attributes}
265
271
  end
266
272
  it { should redirect_to(<%= index_helper %>_url) }
267
273
  it { should set_the_flash[:alert].to("You are not authorized to access this page.") }
@@ -270,9 +276,9 @@ describe <%= controller_class_name %>Controller do
270
276
  context 'as user with update ability' do
271
277
  login_user_with_ability :update, <%= local_class_name %>
272
278
  describe "with valid params" do
273
- it "updates the requested <%= file_name %>" do
274
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
275
- # Assuming there are no other <%= file_name %> in the database, this
279
+ it "updates the requested <%= var_name %>" do
280
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
281
+ # Assuming there are no other <%= var_name %> in the database, this
276
282
  # specifies that the <%= local_class_name %> created on the previous line
277
283
  # receives the :update_attributes message with whatever params are
278
284
  # submitted in the request.
@@ -281,32 +287,32 @@ describe <%= controller_class_name %>Controller do
281
287
  <%- else -%>
282
288
  <%= local_class_name %>.any_instance.should_receive(:update_attributes).with(<%= formatted_hash(example_params_for_update) %>)
283
289
  <%- end -%>
284
- put :update, {:id => @<%= file_name %>.to_param, :<%= file_name %> => <%= formatted_hash(example_params_for_update) %>}
290
+ put :update, {:id => @<%= var_name %>.to_param, :<%= var_name %> => <%= formatted_hash(example_params_for_update) %>}
285
291
  end
286
292
  end
287
293
  describe "with valid params" do
288
294
  before(:each) do
289
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
290
- put :update, {:id => @<%= file_name %>.to_param, :<%= file_name %> => valid_update_attributes}
295
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
296
+ put :update, {:id => @<%= var_name %>.to_param, :<%= var_name %> => valid_update_attributes}
291
297
  end
292
- it "assigns the requested <%= file_name %> as @<%= file_name %>" do
293
- assigns(:<%= file_name %>).should eq(@<%= file_name %>)
298
+ it "assigns the requested <%= var_name %> as @<%= var_name %>" do
299
+ assigns(:<%= var_name %>).should eq(@<%= var_name %>)
294
300
  end
295
- it "redirects to the <%= file_name %>" do
296
- response.should redirect_to(<%= ns_file_name %>_path(@<%= file_name %>))
301
+ it "redirects to the <%= var_name %>" do
302
+ response.should redirect_to(<%= ns_file_name %>_path(@<%= var_name %>))
297
303
  end
298
304
  end
299
305
  describe "with invalid params" do
300
306
  before(:each) do
301
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
307
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
302
308
  # Trigger the behavior that occurs when invalid params are submitted
303
309
  <%= local_class_name %>.any_instance.stub(:save).and_return(false)
304
- put :update, {:id => @<%= file_name %>.to_param, :<%= file_name %> => <%= formatted_hash(example_invalid_attributes) %>}
310
+ put :update, {:id => @<%= var_name %>.to_param, :<%= var_name %> => <%= formatted_hash(example_invalid_attributes) %>}
305
311
  end
306
312
  it { should render_template(:edit) }
307
313
  it { should render_with_layout(:application) }
308
- it "assigns the <%= file_name %> as @<%= file_name %>" do
309
- assigns(:<%= file_name %>).should eq(@<%= file_name %>)
314
+ it "assigns the <%= var_name %> as @<%= var_name %>" do
315
+ assigns(:<%= var_name %>).should eq(@<%= var_name %>)
310
316
  end
311
317
  end
312
318
  end
@@ -316,8 +322,8 @@ describe <%= controller_class_name %>Controller do
316
322
  context 'without a user' do
317
323
  describe 'with valid request' do
318
324
  before(:each) do
319
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
320
- delete :destroy, {:id => @<%= file_name %>.to_param}
325
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
326
+ delete :destroy, {:id => @<%= var_name %>.to_param}
321
327
  end
322
328
  it { should redirect_to(new_user_session_path) }
323
329
  it { should set_the_flash[:alert].to("You need to sign in or sign up before continuing.") }
@@ -327,8 +333,8 @@ describe <%= controller_class_name %>Controller do
327
333
  login_unauthorized_user
328
334
  describe "with valid request" do
329
335
  before(:each) do
330
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
331
- delete :destroy, {:id => @<%= file_name %>.to_param}
336
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
337
+ delete :destroy, {:id => @<%= var_name %>.to_param}
332
338
  end
333
339
  it { should redirect_to(<%= index_helper %>_url) }
334
340
  it { should set_the_flash[:alert].to("You are not authorized to access this page.") }
@@ -336,18 +342,18 @@ describe <%= controller_class_name %>Controller do
336
342
  end
337
343
  context 'as user with destroy ability' do
338
344
  login_user_with_ability :destroy, <%= local_class_name %>
339
- it "destroys the requested <%= file_name %>" do
340
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
345
+ it "destroys the requested <%= var_name %>" do
346
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
341
347
  expect {
342
- delete :destroy, {:id => @<%= file_name %>.to_param}
348
+ delete :destroy, {:id => @<%= var_name %>.to_param}
343
349
  }.to change(<%= local_class_name %>, :count).by(-1)
344
350
  end
345
351
  describe 'with valid request' do
346
352
  before(:each) do
347
- @<%= file_name %> = FactoryGirl.create(:<%= file_name %>)
348
- delete :destroy, {:id => @<%= file_name %>.to_param}
353
+ @<%= var_name %> = FactoryGirl.create(:<%= var_name %>)
354
+ delete :destroy, {:id => @<%= var_name %>.to_param}
349
355
  end
350
- it "redirects to the <%= file_name %> list" do
356
+ it "redirects to the <%= var_name %> list" do
351
357
  response.should redirect_to(<%= index_helper %>_url)
352
358
  end
353
359
  end