authorized_rails_scaffolds 0.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (24) hide show
  1. data/.gitignore +19 -0
  2. data/Gemfile +4 -0
  3. data/LICENSE.txt +22 -0
  4. data/README.md +101 -0
  5. data/Rakefile +1 -0
  6. data/authorized_rails_scaffolds.gemspec +24 -0
  7. data/lib/authorized_rails_scaffolds.rb +5 -0
  8. data/lib/authorized_rails_scaffolds/version.rb +3 -0
  9. data/lib/generators/authorized_rails_scaffolds/install_scaffold/USAGE +9 -0
  10. data/lib/generators/authorized_rails_scaffolds/install_scaffold/install_scaffold_generator.rb +26 -0
  11. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/_form.html.erb +18 -0
  12. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/controller.rb +107 -0
  13. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/edit.html.erb +5 -0
  14. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/index.html.erb +52 -0
  15. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/new.html.erb +5 -0
  16. data/lib/generators/authorized_rails_scaffolds/install_scaffold/templates/show.html.erb +34 -0
  17. data/lib/generators/authorized_rails_scaffolds/install_spec/USAGE +9 -0
  18. data/lib/generators/authorized_rails_scaffolds/install_spec/install_spec_generator.rb +18 -0
  19. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/controller_spec.rb +358 -0
  20. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/edit_spec.rb +99 -0
  21. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/index_spec.rb +185 -0
  22. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/new_spec.rb +98 -0
  23. data/lib/generators/authorized_rails_scaffolds/install_spec/templates/show_spec.rb +64 -0
  24. metadata +103 -0
@@ -0,0 +1,185 @@
1
+ require 'spec_helper'
2
+
3
+ <%- local_class_name = class_name.split('::')[-1] -%>
4
+ <%- output_attributes = attributes.reject{|attribute| [:timestamp].index(attribute.type) } -%>
5
+ describe "<%= ns_table_name %>/index" do
6
+ before(:each) do
7
+ <% [1,2].each_with_index do |id, model_index| -%>
8
+ @<%= file_name %>_<%= model_index + 1 %> = FactoryGirl.build_stubbed(:<%= file_name %><%= output_attributes.empty? ? ')' : ',' %>
9
+ <% output_attributes.each_with_index do |attribute, attribute_index| -%>
10
+ <%-
11
+ attribute_prefix = ''
12
+ attribute_suffix = ')'
13
+ if attribute.type == :datetime
14
+ attribute_value = value_for(attribute)
15
+ attribute_prefix = 'DateTime.parse('
16
+ elsif attribute.type == :time
17
+ attribute_value = value_for(attribute).to_time.strftime('%T').dump
18
+ attribute_prefix = 'Time.parse('
19
+ elsif attribute.type == :date
20
+ attribute_value = value_for(attribute)
21
+ attribute_prefix = 'Date.parse('
22
+ else
23
+ attribute_value = value_for(attribute)
24
+ attribute_suffix = ''
25
+ end
26
+ -%>
27
+ :<%= attribute.name %> => <%= attribute_prefix %><%= attribute_value %><%= attribute_suffix %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
28
+ <% end -%>
29
+ <% if !output_attributes.empty? -%>
30
+ )
31
+ <% end -%>
32
+ <% end -%>
33
+ assign(:<%= file_name.pluralize %>, [
34
+ <% [1,2].each_with_index do |id, model_index| -%>
35
+ @<%= file_name %>_<%= id %><%= model_index == 1 ? '' : ',' %>
36
+ <% end -%>
37
+ ])
38
+ @ability = Object.new
39
+ @ability.extend(CanCan::Ability)
40
+ controller.stub(:current_ability) { @ability }
41
+ end
42
+
43
+ describe "page header" do
44
+ it 'includes a h1 title' do
45
+ render
46
+ <% if webrat? -%>
47
+ rendered.should have_selector(".page-header>h1", :content => <%= file_name.humanize.pluralize.dump %>, :count => 1)
48
+ <% else -%>
49
+ assert_select ".page-header>h1", :text => <%= file_name.humanize.pluralize.dump %>, :count => 1
50
+ <% end -%>
51
+ end
52
+ end
53
+
54
+ describe "<%= file_name.pluralize %> table" do
55
+ it 'includes a row for each <%= file_name %>' do
56
+ render
57
+ <% unless webrat? -%>
58
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
59
+ <% end -%>
60
+ <% [1,2].each do |model_index| -%>
61
+ <% if webrat? -%>
62
+ rendered.should have_selector("table>tbody>tr.<%= file_name %>_#{@<%= file_name %>_<%= model_index %>.id}", :count => 1)
63
+ <% else -%>
64
+ assert_select "table>tbody>tr.<%= file_name %>_#{@<%= file_name %>_<%= model_index %>.id}", :count => 1
65
+ <% end -%>
66
+ <% end -%>
67
+ end
68
+
69
+ it "contains a list of <%= file_name.pluralize %>" do
70
+ render
71
+ <% unless webrat? -%>
72
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
73
+ <% end -%>
74
+ <% [1,2].each do |model_index| -%>
75
+ <% if webrat? -%>
76
+ rendered.should have_selector("tr>td.id-column", :content => @<%= file_name %>_<%= model_index %>.id.to_s, :count => 1)
77
+ <% else -%>
78
+ assert_select "tr>td.id-column", :text => @<%= file_name %>_<%= model_index %>.id.to_s, :count => 1
79
+ <% end -%>
80
+ <% end -%>
81
+ <% output_attributes.each_with_index do |attribute, attribute_index| -%>
82
+ <%-
83
+ if attribute.type == :datetime
84
+ date_time_value = DateTime.parse(value_for(attribute))
85
+ attribute_value = I18n.l(date_time_value, :format => :long).dump
86
+ elsif attribute.type == :time
87
+ time_value = Time.parse(value_for(attribute))
88
+ attribute_value = I18n.l(time_value, :format => :short).dump
89
+ elsif attribute.type == :date
90
+ date_value = Date.parse(value_for(attribute))
91
+ attribute_value = I18n.l(date_value).dump
92
+ else
93
+ attribute_value = value_for(attribute)
94
+ end
95
+ -%>
96
+ <% if webrat? -%>
97
+ rendered.should have_selector("tr>td<% if attribute_index == 0 %>>a<% end %>", :content => <%= attribute_value %>.to_s, :count => 2)
98
+ <% else -%>
99
+ assert_select "tr>td<% if attribute_index == 0 %>>a<% end %>", :text => <%= attribute_value %>.to_s, :count => 2
100
+ <% end -%>
101
+ <% end -%>
102
+ end
103
+
104
+ describe 'edit <%= file_name %> link' do
105
+ context 'without update permissions' do
106
+ it "renders a disabled link to edit_<%= ns_file_name %>_path" do
107
+ render
108
+ <% [1,2].each do |model_index| -%>
109
+ <% if webrat? -%>
110
+ rendered.should_not have_selector("td>a[href][disabled=disabled]", :href => edit_<%= ns_file_name %>_path(@<%= file_name %>_<%= model_index %>), :count => 1)
111
+ <% else -%>
112
+ assert_select "td>a[href=?][disabled=disabled]", edit_<%= ns_file_name %>_path(@<%= file_name %>_<%= model_index %>), :count => 1
113
+ <% end -%>
114
+ <% end -%>
115
+ end
116
+ end
117
+ context 'with update permissions' do
118
+ it "renders a link to edit_<%= ns_file_name %>_path" do
119
+ @ability.can :update, <%= local_class_name %>
120
+ render
121
+ <% [1,2].each do |model_index| -%>
122
+ <% if webrat? -%>
123
+ rendered.should have_selector("td>a[href]:not([disabled])", :href => edit_<%= ns_file_name %>_path(@<%= file_name %>_<%= model_index %>), :count => 1)
124
+ <% else -%>
125
+ assert_select "td>a[href=?]:not([disabled])", edit_<%= ns_file_name %>_path(@<%= file_name %>_<%= model_index %>), :count => 1
126
+ <% end -%>
127
+ <% end -%>
128
+ end
129
+ end
130
+ end
131
+
132
+ describe 'destroy <%= file_name %> link' do
133
+ context 'without destroy permissions' do
134
+ it "renders a disabled link to <%= ns_file_name %>_path" do
135
+ render
136
+ <% [1,2].each do |model_index| -%>
137
+ <% if webrat? -%>
138
+ rendered.should_not have_selector("td>a[href][data-method=delete][disabled=disabled]", :href => <%= ns_file_name %>_path(@<%= file_name %>_<%= model_index %>), :count => 1)
139
+ <% else -%>
140
+ assert_select "td>a[href=?][data-method=delete][disabled=disabled]", <%= ns_file_name %>_path(@<%= file_name %>_<%= model_index %>), :count => 1
141
+ <% end -%>
142
+ <% end -%>
143
+ end
144
+ end
145
+ context 'with destroy permissions' do
146
+ it "renders a link to <%= ns_file_name %>_path" do
147
+ @ability.can :destroy, <%= local_class_name %>
148
+ render
149
+ <% [1,2].each do |model_index| -%>
150
+ <% if webrat? -%>
151
+ rendered.should have_selector("td>a[href][data-method=delete]:not([disabled])", :href => <%= ns_file_name %>_path(@<%= file_name %>_<%= model_index %>), :count => 1)
152
+ <% else -%>
153
+ assert_select "td>a[href=?][data-method=delete]:not([disabled])", <%= ns_file_name %>_path(@<%= file_name %>_<%= model_index %>), :count => 1
154
+ <% end -%>
155
+ <% end -%>
156
+ end
157
+ end
158
+ end
159
+ end
160
+
161
+ describe 'new <%= file_name %> link' do
162
+ context 'without create permissions' do
163
+ it "does not render a link to new_<%= ns_file_name %>_path" do
164
+ render
165
+ <% if webrat? -%>
166
+ rendered.should_not have_selector("a[href=?]", :href => new_<%= ns_file_name %>_path, :count => 1)
167
+ <% else -%>
168
+ assert_select "a[href=?]", new_<%= ns_file_name %>_path, :count => 0
169
+ <% end -%>
170
+ end
171
+ end
172
+ context 'with create permissions' do
173
+ it "renders a link to new_<%= ns_file_name %>_path" do
174
+ @ability.can :create, <%= local_class_name %>
175
+ render
176
+ <% if webrat? -%>
177
+ rendered.should have_selector("a[href=?]", new_<%= ns_file_name %>_path, :count => 1)
178
+ <% else -%>
179
+ assert_select "a[href=?]", new_<%= ns_file_name %>_path, :count => 1
180
+ <% end -%>
181
+ end
182
+ end
183
+ end
184
+
185
+ end
@@ -0,0 +1,98 @@
1
+ require 'spec_helper'
2
+
3
+ <% local_class_name = class_name.split('::')[-1] -%>
4
+ <% output_attributes = attributes.reject{|attribute| [:timestamp].index(attribute.type) } -%>
5
+ <% standard_attributes = output_attributes.reject{|attribute| [:time, :date, :datetime].index(attribute.type) } -%>
6
+ <% date_attributes = output_attributes.reject{|attribute| ![:time, :date, :datetime].index(attribute.type) } -%>
7
+ describe "<%= ns_table_name %>/new" do
8
+ before(:each) do
9
+ assign(:<%= file_name %>, FactoryGirl.build(:<%= file_name %><%= output_attributes.empty? ? '))' : ',' %>
10
+ <% output_attributes.each_with_index do |attribute, attribute_index| -%>
11
+ <%-
12
+ attribute_prefix = ''
13
+ attribute_suffix = ')'
14
+ if attribute.type == :datetime
15
+ attribute_value = value_for(attribute)
16
+ attribute_prefix = 'DateTime.parse('
17
+ elsif attribute.type == :time
18
+ attribute_value = value_for(attribute).to_time.strftime('%T').dump
19
+ attribute_prefix = 'Time.parse('
20
+ elsif attribute.type == :date
21
+ attribute_value = value_for(attribute)
22
+ attribute_prefix = 'Date.parse('
23
+ else
24
+ attribute_value = value_for(attribute)
25
+ attribute_suffix = ''
26
+ end
27
+ -%>
28
+ :<%= attribute.name %> => <%= attribute_prefix %><%= attribute_value %><%= attribute_suffix %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
29
+ <% end -%>
30
+ <%= !output_attributes.empty? ? " ))\n end" : " end" %>
31
+
32
+ it "renders new <%= file_name %> form" do
33
+ render
34
+
35
+ <% if webrat? -%>
36
+ rendered.should have_selector("form", :action => <%= table_name %>_path, :method => "post") do |form|
37
+ <% for attribute in standard_attributes -%>
38
+ form.should have_selector("<%= attribute.input_type -%>#<%= file_name %>_<%= attribute.name %>", :name => "<%= file_name %>[<%= attribute.name %>]")
39
+ <% end -%>
40
+ end
41
+ <% else -%>
42
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
43
+ assert_select "form[action=?][method=?]", <%= index_helper %>_path, "post" do
44
+ <% for attribute in standard_attributes -%>
45
+ assert_select "<%= attribute.input_type -%>#<%= file_name %>_<%= attribute.name %>[name=?]", "<%= file_name %>[<%= attribute.name %>]"
46
+ <% end -%>
47
+ end
48
+ <% end -%>
49
+ end
50
+
51
+ <% if date_attributes.any? -%>
52
+ it "renders all date/time form elements" do
53
+ render
54
+
55
+ <% if webrat? -%>
56
+ rendered.should have_selector("form", :action => <%= table_name %>_path, :method => "post") do |form|
57
+ <% for attribute in date_attributes -%>
58
+ <%- if [:date, :datetime].include? attribute.type -%>
59
+ form.should have_selector("select#<%= file_name %>_<%= attribute.name %>", :name => "<%= file_name %>[<%= attribute.name %>]")
60
+ form.should have_selector("select#<%= file_name %>_<%= attribute.name %>", :name => "<%= file_name %>[<%= attribute.name %>]")
61
+ form.should have_selector("select#<%= file_name %>_<%= attribute.name %>", :name => "<%= file_name %>[<%= attribute.name %>]")
62
+ <%- end -%>
63
+ <%- if [:time, :datetime].include? attribute.type -%>
64
+ form.should have_selector("select#<%= file_name %>_<%= attribute.name %>", :name => "<%= file_name %>[<%= attribute.name %>]")
65
+ form.should have_selector("select#<%= file_name %>_<%= attribute.name %>", :name => "<%= file_name %>[<%= attribute.name %>]")
66
+ <%- end -%>
67
+ <% end -%>
68
+ end
69
+ <% else -%>
70
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
71
+ assert_select "form[action=?][method=?]", <%= table_name %>_path, "post" do
72
+ <% for attribute in date_attributes -%>
73
+ <%- if [:date, :datetime].include? attribute.type -%>
74
+ assert_select "select#<%= file_name %>_<%= attribute.name %>_1i[name=?]", "<%= file_name %>[<%= attribute.name %>(1i)]" do
75
+ assert_select "option[selected=selected]", :text => <%= DateTime.parse(attribute.default).strftime('%Y').dump %>, :count => 1
76
+ end
77
+ assert_select "select#<%= file_name %>_<%= attribute.name %>_2i[name=?]", "<%= file_name %>[<%= attribute.name %>(2i)]" do
78
+ assert_select "option[selected=selected][value=?]", <%= DateTime.parse(attribute.default).strftime('%-m').dump %>, :text => <%= DateTime.parse(attribute.default).strftime('%B').dump %>, :count => 1
79
+ end
80
+ assert_select "select#<%= file_name %>_<%= attribute.name %>_3i[name=?]", "<%= file_name %>[<%= attribute.name %>(3i)]" do
81
+ assert_select "option[selected=selected]", :text => <%= DateTime.parse(attribute.default).strftime('%d').dump %>, :count => 1
82
+ end
83
+ <%- end -%>
84
+ <%- if [:time, :datetime].include? attribute.type -%>
85
+ assert_select "select#<%= file_name %>_<%= attribute.name %>_4i[name=?]", "<%= file_name %>[<%= attribute.name %>(4i)]" do
86
+ assert_select "option[selected=selected]", :text => <%= DateTime.parse(attribute.default).strftime('%H').dump %>, :count => 1
87
+ end
88
+ assert_select "select#<%= file_name %>_<%= attribute.name %>_5i[name=?]", "<%= file_name %>[<%= attribute.name %>(5i)]" do
89
+ assert_select "option[selected=selected]", :text => <%= DateTime.parse(attribute.default).strftime('%M').dump %>, :count => 1
90
+ end
91
+ <%- end -%>
92
+ <% end -%>
93
+ end
94
+ <% end -%>
95
+ end
96
+
97
+ <% end -%>
98
+ end
@@ -0,0 +1,64 @@
1
+ require 'spec_helper'
2
+
3
+ <% output_attributes = attributes.reject{|attribute| [:timestamp].index(attribute.type) } -%>
4
+ describe "<%= ns_table_name %>/show" do
5
+ before(:each) do
6
+ @<%= file_name %> = FactoryGirl.build_stubbed(:<%= file_name %><%= output_attributes.empty? ? ')' : ',' %>
7
+ <% output_attributes.each_with_index do |attribute, attribute_index| -%>
8
+ <%-
9
+ attribute_prefix = ''
10
+ attribute_suffix = ')'
11
+ if attribute.type == :datetime
12
+ attribute_value = value_for(attribute)
13
+ attribute_prefix = 'DateTime.parse('
14
+ elsif attribute.type == :time
15
+ attribute_value = value_for(attribute).to_time.strftime('%T').dump
16
+ attribute_prefix = 'Time.parse('
17
+ elsif attribute.type == :date
18
+ attribute_value = value_for(attribute)
19
+ attribute_prefix = 'Date.parse('
20
+ else
21
+ attribute_value = value_for(attribute)
22
+ attribute_suffix = ''
23
+ end
24
+ -%>
25
+ :<%= attribute.name %> => <%= attribute_prefix %><%= attribute_value %><%= attribute_suffix %><%= attribute_index == output_attributes.length - 1 ? '' : ','%>
26
+ <% end -%>
27
+ <% if !output_attributes.empty? -%>
28
+ )
29
+ <% end -%>
30
+ @ability = Object.new
31
+ @ability.extend(CanCan::Ability)
32
+ controller.stub(:current_ability) { @ability }
33
+ end
34
+
35
+ it "renders attributes in a <dl> as a <dt> and <dd> pair" do
36
+ render
37
+ <% unless webrat? -%>
38
+ # Run the generator again with the --webrat flag if you want to use webrat matchers
39
+ <% end -%>
40
+ <% for attribute in attributes -%>
41
+ <%-
42
+ if attribute.type == :datetime
43
+ date_time_value = DateTime.parse(value_for(attribute))
44
+ attribute_value = I18n.l(date_time_value, :format => :long).dump
45
+ elsif attribute.type == :time
46
+ time_value = Time.parse(value_for(attribute))
47
+ attribute_value = I18n.l(time_value, :format => :short).dump
48
+ elsif attribute.type == :date
49
+ date_value = Date.parse(value_for(attribute))
50
+ attribute_value = I18n.l(date_value).dump
51
+ else
52
+ attribute_value = value_for(attribute)
53
+ end
54
+ -%>
55
+ <% if webrat? -%>
56
+ rendered.should have_selector("dl>dt", :content => <%= "#{attribute.human_name}:".dump %>)
57
+ rendered.should have_selector("dl>dd", :content => <%= attribute_value %>.to_s)
58
+ <% else -%>
59
+ assert_select "dl>dt", :text => <%= "#{attribute.human_name}:".dump %>
60
+ assert_select "dl>dd", :text => <%= attribute_value %>.to_s
61
+ <% end -%>
62
+ <% end -%>
63
+ end
64
+ end
metadata ADDED
@@ -0,0 +1,103 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: authorized_rails_scaffolds
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - bmorrall
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2013-03-20 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: railties
16
+ requirement: &70169587291020 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '3.1'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70169587291020
25
+ - !ruby/object:Gem::Dependency
26
+ name: bundler
27
+ requirement: &70169587290520 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ~>
31
+ - !ruby/object:Gem::Version
32
+ version: '1.3'
33
+ type: :development
34
+ prerelease: false
35
+ version_requirements: *70169587290520
36
+ - !ruby/object:Gem::Dependency
37
+ name: rake
38
+ requirement: &70169587290140 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70169587290140
47
+ description: Creates scaffolds for Twitter Bootstrap with generated RSpec coverage
48
+ email:
49
+ - bemo56@hotmail.com
50
+ executables: []
51
+ extensions: []
52
+ extra_rdoc_files: []
53
+ files:
54
+ - .gitignore
55
+ - Gemfile
56
+ - LICENSE.txt
57
+ - README.md
58
+ - Rakefile
59
+ - authorized_rails_scaffolds.gemspec
60
+ - lib/authorized_rails_scaffolds.rb
61
+ - lib/authorized_rails_scaffolds/version.rb
62
+ - lib/generators/authorized_rails_scaffolds/install_scaffold/USAGE
63
+ - lib/generators/authorized_rails_scaffolds/install_scaffold/install_scaffold_generator.rb
64
+ - lib/generators/authorized_rails_scaffolds/install_scaffold/templates/_form.html.erb
65
+ - lib/generators/authorized_rails_scaffolds/install_scaffold/templates/controller.rb
66
+ - lib/generators/authorized_rails_scaffolds/install_scaffold/templates/edit.html.erb
67
+ - lib/generators/authorized_rails_scaffolds/install_scaffold/templates/index.html.erb
68
+ - lib/generators/authorized_rails_scaffolds/install_scaffold/templates/new.html.erb
69
+ - lib/generators/authorized_rails_scaffolds/install_scaffold/templates/show.html.erb
70
+ - lib/generators/authorized_rails_scaffolds/install_spec/USAGE
71
+ - lib/generators/authorized_rails_scaffolds/install_spec/install_spec_generator.rb
72
+ - lib/generators/authorized_rails_scaffolds/install_spec/templates/controller_spec.rb
73
+ - lib/generators/authorized_rails_scaffolds/install_spec/templates/edit_spec.rb
74
+ - lib/generators/authorized_rails_scaffolds/install_spec/templates/index_spec.rb
75
+ - lib/generators/authorized_rails_scaffolds/install_spec/templates/new_spec.rb
76
+ - lib/generators/authorized_rails_scaffolds/install_spec/templates/show_spec.rb
77
+ homepage: https://github.com/bmorrall/authorized_rails_scaffolds
78
+ licenses:
79
+ - MIT
80
+ post_install_message:
81
+ rdoc_options: []
82
+ require_paths:
83
+ - lib
84
+ required_ruby_version: !ruby/object:Gem::Requirement
85
+ none: false
86
+ requirements:
87
+ - - ! '>='
88
+ - !ruby/object:Gem::Version
89
+ version: '0'
90
+ required_rubygems_version: !ruby/object:Gem::Requirement
91
+ none: false
92
+ requirements:
93
+ - - ! '>='
94
+ - !ruby/object:Gem::Version
95
+ version: '0'
96
+ requirements: []
97
+ rubyforge_project:
98
+ rubygems_version: 1.8.10
99
+ signing_key:
100
+ specification_version: 3
101
+ summary: Replaces Rails and RSpec's default generators with templates taking full
102
+ advantage of Authentication (Devise), Authorization (CanCan) and Test Coverage (RSpec)
103
+ test_files: []