authorized_rails_scaffolds 0.0.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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: []