rails_apps_composer 1.4.5 → 1.4.6

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.
File without changes
data/recipes/add_user.rb CHANGED
@@ -19,6 +19,20 @@ RUBY
19
19
 
20
20
  # Generate models and routes for a User
21
21
  generate 'devise user'
22
+
23
+ if recipes.include? 'authorization'
24
+ # create'app/models/ability.rb'
25
+ generate 'cancan:ability'
26
+ # create 'app/models/role.rb'
27
+ # create 'config/initializers/rolify.rb'
28
+ # create 'db/migrate/...rolify_create_roles.rb'
29
+ # insert 'rolify' method in 'app/models/users.rb'
30
+ if recipes.include? 'mongoid'
31
+ generate 'rolify:role Role User mongoid'
32
+ else
33
+ generate 'rolify:role Role User'
34
+ end
35
+ end
22
36
 
23
37
  # Add a 'name' attribute to the User model
24
38
  if recipes.include? 'mongoid'
@@ -58,13 +72,6 @@ RUBY
58
72
  gsub_file 'app/models/user.rb', /# field :unconfirmed_email/, "field :unconfirmed_email"
59
73
  end
60
74
  end
61
-
62
- if recipes.include? 'canard'
63
- say_wizard "modifying User class to add an admin role"
64
- inject_into_file 'app/models/user.rb', :after => 'ActiveRecord::Base' do
65
- "\n acts_as_user :roles => :admin\n"
66
- end
67
- end
68
75
 
69
76
  unless recipes.include? 'haml'
70
77
 
data/recipes/devise.rb CHANGED
@@ -20,9 +20,10 @@ case config['devise']
20
20
  say_wizard "Devise recipe skipped."
21
21
  end
22
22
 
23
- if config['canard']
24
- gem 'cancan', '>= 0.2.7'
25
- recipes << 'canard'
23
+ if config['authorization']
24
+ gem 'cancan', '>= 1.6.7'
25
+ gem 'rolify', '>= 3.1.0'
26
+ recipes << 'authorization'
26
27
  end
27
28
 
28
29
  if recipes.include? 'devise'
@@ -51,7 +52,16 @@ if recipes.include? 'devise'
51
52
  # (see https://github.com/RailsApps/rails3-devise-rspec-cucumber/issues/3)
52
53
  gsub_file 'config/initializers/devise.rb', 'config.sign_out_via = :delete', 'config.sign_out_via = Rails.env.test? ? :get : :delete'
53
54
  end
54
-
55
+
56
+ if config['authorization']
57
+ inject_into_file 'app/controllers/application_controller.rb', :before => 'end' do <<-RUBY
58
+ rescue_from CanCan::AccessDenied do |exception|
59
+ redirect_to root_path, :error => exception.message
60
+ end
61
+ RUBY
62
+ end
63
+ end
64
+
55
65
  end
56
66
 
57
67
  after_everything do
@@ -99,6 +109,6 @@ config:
99
109
  type: multiple_choice
100
110
  prompt: Would you like to use Devise for authentication?
101
111
  choices: [["No", no], ["Devise with default modules", standard], ["Devise with Confirmable module", confirmable], ["Devise with Confirmable and Invitable modules", invitable]]
102
- - canard:
112
+ - authorization:
103
113
  type: boolean
104
- prompt: Would you like to manage authorization with CanCan, RoleModel, and Canard?
114
+ prompt: Would you like to manage authorization with CanCan & Rolify?
data/recipes/extras.rb CHANGED
@@ -2,24 +2,26 @@
2
2
  # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/extras.rb
3
3
 
4
4
  if config['footnotes']
5
- say_wizard "Extras recipe running 'after bundler'"
5
+ say_wizard "Adding 'rails-footnotes'"
6
6
  gem 'rails-footnotes', '>= 3.7', :group => :development
7
7
  after_bundler do
8
8
  generate 'rails_footnotes:install'
9
9
  end
10
- else
11
- recipes.delete('footnotes')
12
10
  end
13
11
 
14
12
  if config['ban_spiders']
15
- say_wizard "BanSpiders recipe running 'after bundler'"
13
+ say_wizard "Banning spiders by modifying 'public/robots.txt'"
16
14
  after_bundler do
17
15
  # ban spiders from your site by changing robots.txt
18
16
  gsub_file 'public/robots.txt', /# User-Agent/, 'User-Agent'
19
17
  gsub_file 'public/robots.txt', /# Disallow/, 'Disallow'
20
18
  end
21
- else
22
- recipes.delete('ban_spiders')
19
+ end
20
+
21
+ if config['paginate']
22
+ say_wizard "Adding 'will_paginate'"
23
+ gem 'will_paginate', '>= 3.0.3'
24
+ recipes << 'paginate'
23
25
  end
24
26
 
25
27
  __END__
@@ -38,3 +40,6 @@ config:
38
40
  - ban_spiders:
39
41
  type: boolean
40
42
  prompt: Would you like to set a robots.txt file to ban spiders?
43
+ - paginate:
44
+ type: boolean
45
+ prompt: Would you like to add 'will_paginate' for pagination?
data/recipes/html5.rb CHANGED
@@ -52,7 +52,11 @@ after_bundler do
52
52
  # get an appropriate navigation partial
53
53
  if recipes.include? 'haml'
54
54
  if recipes.include? 'devise'
55
- get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/navigation/devise/_navigation.html.haml', 'app/views/layouts/_navigation.html.haml'
55
+ if recipes.include? 'authorization'
56
+ get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/navigation/devise/authorization/_navigation.html.haml', 'app/views/layouts/_navigation.html.haml'
57
+ else
58
+ get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/navigation/devise/_navigation.html.haml', 'app/views/layouts/_navigation.html.haml'
59
+ end
56
60
  elsif recipes.include? 'omniauth'
57
61
  get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/navigation/omniauth/_navigation.html.haml', 'app/views/layouts/_navigation.html.haml'
58
62
  elsif recipes.include? 'subdomains'
@@ -62,7 +66,11 @@ after_bundler do
62
66
  end
63
67
  else
64
68
  if recipes.include? 'devise'
65
- get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/navigation/devise/_navigation.html.erb', 'app/views/layouts/_navigation.html.erb'
69
+ if recipes.include? 'authorization'
70
+ get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/navigation/devise/authorization/_navigation.html.erb', 'app/views/layouts/_navigation.html.erb'
71
+ else
72
+ get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/navigation/devise/_navigation.html.erb', 'app/views/layouts/_navigation.html.erb'
73
+ end
66
74
  elsif recipes.include? 'omniauth'
67
75
  get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/navigation/omniauth/_navigation.html.erb', 'app/views/layouts/_navigation.html.erb'
68
76
  elsif recipes.include? 'subdomains'
data/recipes/mongoid.rb CHANGED
@@ -5,7 +5,7 @@ if config['mongoid']
5
5
  say_wizard "REMINDER: When creating a Rails app using Mongoid..."
6
6
  say_wizard "you should add the '-O' flag to 'rails new'"
7
7
  gem 'bson_ext', '>= 1.6.2'
8
- gem 'mongoid', '>= 2.4.7'
8
+ gem 'mongoid', '>= 2.4.8'
9
9
  else
10
10
  recipes.delete('mongoid')
11
11
  end
@@ -32,6 +32,8 @@ FILE
32
32
  puts 'SETTING UP DEFAULT USER LOGIN'
33
33
  user = User.create! :name => 'First User', :email => 'user@example.com', :password => 'please', :password_confirmation => 'please', :confirmed_at => Time.now.utc
34
34
  puts 'New user created: ' << user.name
35
+ user2 = User.create! :name => 'Second User', :email => 'user2@example.com', :password => 'please', :password_confirmation => 'please', :confirmed_at => Time.now.utc
36
+ puts 'New user created: ' << user2.name
35
37
  FILE
36
38
  end
37
39
  else
@@ -39,19 +41,28 @@ FILE
39
41
  puts 'SETTING UP DEFAULT USER LOGIN'
40
42
  user = User.create! :name => 'First User', :email => 'user@example.com', :password => 'please', :password_confirmation => 'please'
41
43
  puts 'New user created: ' << user.name
44
+ user2 = User.create! :name => 'Second User', :email => 'user2@example.com', :password => 'please', :password_confirmation => 'please'
45
+ puts 'New user created: ' << user2.name
42
46
  FILE
43
47
  end
44
48
  end
45
- if recipes.include? 'canard'
49
+ if recipes.include? 'authorization'
46
50
  append_file 'db/seeds.rb' do <<-FILE
47
- user.roles = [:admin]
51
+ user.add_role :admin
48
52
  FILE
49
53
  end
50
54
  end
51
55
  end
52
56
 
53
- run 'bundle exec rake db:seed'
57
+
54
58
 
59
+ end
60
+
61
+ after_everything do
62
+
63
+ say_wizard "seeding the database"
64
+ run 'bundle exec rake db:seed'
65
+
55
66
  end
56
67
 
57
68
  __END__
@@ -8,14 +8,41 @@ after_bundler do
8
8
  #----------------------------------------------------------------------------
9
9
  # Create a users controller
10
10
  #----------------------------------------------------------------------------
11
- generate(:controller, "users show")
12
- gsub_file 'app/controllers/users_controller.rb', /def show/ do
13
- <<-RUBY
14
- before_filter :authenticate_user!
11
+ generate(:controller, "users show index")
12
+ remove_file 'app/controllers/users_controller.rb'
13
+ create_file 'app/controllers/users_controller.rb' do <<-RUBY
14
+ class UsersController < ApplicationController
15
+ before_filter :authenticate_user!
16
+
17
+ def index
18
+ @users = User.all
19
+ end
15
20
 
16
21
  def show
17
22
  @user = User.find(params[:id])
23
+ end
24
+
25
+ end
26
+ RUBY
27
+ end
28
+ if recipes.include? 'authorization'
29
+ inject_into_file 'app/controllers/users_controller.rb', " authorize! :index, @user, :message => 'Not authorized as an administrator.'\n", :after => "def index\n"
30
+ end
31
+ if recipes.include? 'paginate'
32
+ gsub_file 'app/controllers/users_controller.rb', /@users = User.all/, '@users = User.paginate(:page => params[:page])'
33
+ end
34
+
35
+ #----------------------------------------------------------------------------
36
+ # Limit access to the users#index page
37
+ #----------------------------------------------------------------------------
38
+ if recipes.include? 'authorization'
39
+ inject_into_file 'app/models/ability.rb', :after => "def initialize(user)\n" do <<-RUBY
40
+ user ||= User.new # guest user (not logged in)
41
+ if user.has_role? :admin
42
+ can :manage, :all
43
+ end
18
44
  RUBY
45
+ end
19
46
  end
20
47
 
21
48
  #----------------------------------------------------------------------------
@@ -23,13 +50,47 @@ RUBY
23
50
  #----------------------------------------------------------------------------
24
51
  # @devise_for :users@ route must be placed above @resources :users, :only => :show@.
25
52
  gsub_file 'config/routes.rb', /get \"users\/show\"/, ''
53
+ gsub_file 'config/routes.rb', /get \"users\/index\"/, ''
26
54
  gsub_file 'config/routes.rb', /devise_for :users/ do
27
55
  <<-RUBY
28
56
  devise_for :users
29
- resources :users, :only => :show
57
+ resources :users, :only => [:show, :index]
30
58
  RUBY
31
59
  end
32
60
 
61
+ #----------------------------------------------------------------------------
62
+ # Create a users index page
63
+ #----------------------------------------------------------------------------
64
+ if recipes.include? 'haml'
65
+ remove_file 'app/views/users/index.html.haml'
66
+ # There is Haml code in this script. Changing the indentation is perilous between HAMLs.
67
+ # We have to use single-quote-style-heredoc to avoid interpolation.
68
+ create_file 'app/views/users/index.html.haml' do <<-'HAML'
69
+ %h2 Users
70
+ - @users.each do |user|
71
+ %br/
72
+ #{link_to user.email, user} signed up #{user.created_at.to_date}
73
+ HAML
74
+ end
75
+ if recipes.include? 'paginate'
76
+ append_file 'app/views/users/index.html.haml', "\n= will_paginate\n"
77
+ end
78
+ else
79
+ append_file 'app/views/users/index.html.erb' do <<-ERB
80
+ <ul class="users">
81
+ <% @users.each do |user| %>
82
+ <li>
83
+ <%= link_to user.name, user %> signed up <%= user.created_at.to_date %>
84
+ </li>
85
+ <% end %>
86
+ </ul>
87
+ ERB
88
+ end
89
+ if recipes.include? 'paginate'
90
+ append_file 'app/views/users/index.html.erb', "\n<%= will_paginate %>\n"
91
+ end
92
+ end
93
+
33
94
  #----------------------------------------------------------------------------
34
95
  # Create a users show page
35
96
  #----------------------------------------------------------------------------
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RailsWizard
2
- VERSION = "1.4.5"
3
- end
2
+ VERSION = "1.4.6"
3
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_apps_composer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.4.5
4
+ version: 1.4.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-04-10 00:00:00.000000000 Z
12
+ date: 2012-04-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n
16
- requirement: &2157713800 !ruby/object:Gem::Requirement
16
+ requirement: &2153133360 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,10 +21,10 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *2157713800
24
+ version_requirements: *2153133360
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &2157713300 !ruby/object:Gem::Requirement
27
+ requirement: &2153132800 !ruby/object:Gem::Requirement
28
28
  none: false
29
29
  requirements:
30
30
  - - ! '>='
@@ -32,10 +32,10 @@ dependencies:
32
32
  version: 3.0.0
33
33
  type: :runtime
34
34
  prerelease: false
35
- version_requirements: *2157713300
35
+ version_requirements: *2153132800
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: thor
38
- requirement: &2157712800 !ruby/object:Gem::Requirement
38
+ requirement: &2153132340 !ruby/object:Gem::Requirement
39
39
  none: false
40
40
  requirements:
41
41
  - - ! '>='
@@ -43,10 +43,10 @@ dependencies:
43
43
  version: '0'
44
44
  type: :runtime
45
45
  prerelease: false
46
- version_requirements: *2157712800
46
+ version_requirements: *2153132340
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &2157712260 !ruby/object:Gem::Requirement
49
+ requirement: &2153131860 !ruby/object:Gem::Requirement
50
50
  none: false
51
51
  requirements:
52
52
  - - ! '>='
@@ -54,10 +54,10 @@ dependencies:
54
54
  version: '0'
55
55
  type: :runtime
56
56
  prerelease: false
57
- version_requirements: *2157712260
57
+ version_requirements: *2153131860
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &2157711700 !ruby/object:Gem::Requirement
60
+ requirement: &2153131120 !ruby/object:Gem::Requirement
61
61
  none: false
62
62
  requirements:
63
63
  - - ! '>='
@@ -65,10 +65,10 @@ dependencies:
65
65
  version: 2.5.0
66
66
  type: :development
67
67
  prerelease: false
68
- version_requirements: *2157711700
68
+ version_requirements: *2153131120
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mg
71
- requirement: &2157711240 !ruby/object:Gem::Requirement
71
+ requirement: &2153130600 !ruby/object:Gem::Requirement
72
72
  none: false
73
73
  requirements:
74
74
  - - ! '>='
@@ -76,10 +76,10 @@ dependencies:
76
76
  version: '0'
77
77
  type: :development
78
78
  prerelease: false
79
- version_requirements: *2157711240
79
+ version_requirements: *2153130600
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: activesupport
82
- requirement: &2157710700 !ruby/object:Gem::Requirement
82
+ requirement: &2153129680 !ruby/object:Gem::Requirement
83
83
  none: false
84
84
  requirements:
85
85
  - - ! '>='
@@ -87,10 +87,10 @@ dependencies:
87
87
  version: 3.0.0
88
88
  type: :development
89
89
  prerelease: false
90
- version_requirements: *2157710700
90
+ version_requirements: *2153129680
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: i18n
93
- requirement: &2157710280 !ruby/object:Gem::Requirement
93
+ requirement: &2153129020 !ruby/object:Gem::Requirement
94
94
  none: false
95
95
  requirements:
96
96
  - - ! '>='
@@ -98,7 +98,7 @@ dependencies:
98
98
  version: '0'
99
99
  type: :development
100
100
  prerelease: false
101
- version_requirements: *2157710280
101
+ version_requirements: *2153129020
102
102
  description: A gem with recipes to create Rails application templates you can use
103
103
  to generate Rails starter apps.
104
104
  email:
@@ -182,7 +182,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
182
182
  version: '0'
183
183
  segments:
184
184
  - 0
185
- hash: 378750494196992519
185
+ hash: -1960849393898634811
186
186
  required_rubygems_version: !ruby/object:Gem::Requirement
187
187
  none: false
188
188
  requirements:
@@ -191,7 +191,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
191
191
  version: '0'
192
192
  segments:
193
193
  - 0
194
- hash: 378750494196992519
194
+ hash: -1960849393898634811
195
195
  requirements: []
196
196
  rubyforge_project: rails_apps_composer
197
197
  rubygems_version: 1.8.16