Skip to content

Commit 5fcf96c

Browse files
committed
replace recipes 'model, view, controller' with recipes 'devise, omniauth, pundit'
1 parent 268c702 commit 5fcf96c

12 files changed

+116
-170
lines changed

CHANGELOG.textile

+1
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ h1. CHANGELOG
22

33
h3. 3.0.0 unreleased
44

5+
* replace recipes 'model, view, controller' with recipes 'devise, omniauth, pundit'
56
* remove 'starter_app' option (to be replaced by rails_apps_pages generated pages)
67
* remove 'testing' recipe (partly replaced by 'tests4' recipe)
78
* remove options for Rails 3.2 example applications

lib/rails_wizard/diagnostics.rb

+12-11
Original file line numberDiff line numberDiff line change
@@ -15,17 +15,18 @@ module Diagnostics
1515
@@recipes << %w(gems git setup)
1616
@@recipes << %w(gems git readme setup)
1717
@@recipes << %w(extras gems git readme setup)
18-
@@recipes << %w(controllers email extras frontend gems git init models railsapps readme routes setup testing views)
19-
@@recipes << %w(controllers core email extras frontend gems git init models railsapps readme routes setup testing views)
20-
@@recipes << %w(controllers core email extras frontend gems git init models prelaunch railsapps readme routes setup testing views)
21-
@@recipes << %w(controllers core email extras frontend gems git init models prelaunch railsapps readme routes saas setup testing views)
22-
@@recipes << %w(controllers email example extras frontend gems git init models railsapps readme routes setup testing views)
23-
@@recipes << %w(controllers email example extras frontend gems git init models prelaunch railsapps readme routes setup testing views)
24-
@@recipes << %w(controllers email example extras frontend gems git init models prelaunch railsapps readme routes saas setup testing views)
25-
@@recipes << %w(apps4 controllers core email extras frontend gems git init models prelaunch railsapps readme routes saas setup testing views)
26-
@@recipes << %w(apps4 controllers core email extras frontend gems git init models prelaunch railsapps readme routes saas setup testing tests4 views)
27-
@@recipes << %w(apps4 controllers core deployment email extras frontend gems git init models prelaunch railsapps readme routes saas setup testing views)
28-
@@recipes << %w(apps4 controllers core deployment email extras frontend gems git init models prelaunch railsapps readme routes saas setup testing tests4 views)
18+
@@recipes << %w(email extras frontend gems git init railsapps readme setup testing)
19+
@@recipes << %w(core email extras frontend gems git init railsapps readme setup testing)
20+
@@recipes << %w(core email extras frontend gems git init railsapps readme setup testing)
21+
@@recipes << %w(core email extras frontend gems git init railsapps readme setup testing)
22+
@@recipes << %w(email example extras frontend gems git init railsapps readme setup testing)
23+
@@recipes << %w(email example extras frontend gems git init railsapps readme setup testing)
24+
@@recipes << %w(email example extras frontend gems git init railsapps readme setup testing)
25+
@@recipes << %w(apps4 core email extras frontend gems git init railsapps readme setup testing)
26+
@@recipes << %w(apps4 core email extras frontend gems git init railsapps readme setup tests4)
27+
@@recipes << %w(apps4 core deployment email extras frontend gems git init railsapps readme setup testing)
28+
@@recipes << %w(apps4 core deployment email extras frontend gems git init railsapps readme setup tests4)
29+
@@recipes << %w(apps4 core deployment devise email extras frontend gems git init omniauth pundit railsapps readme setup tests4)
2930

3031
### collections of preferences that are known to work together
3132

recipes/controllers.rb

-44
This file was deleted.

recipes/core.rb

+1-1
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,7 @@
2121
setup, readme, gems,
2222
tests4,
2323
email,
24-
models, controllers, views,
24+
devise, omniauth, pundit,
2525
frontend,
2626
init, extras, deployment]
2727
category: collections

recipes/devise.rb

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Application template recipe for the rails_apps_composer. Change the recipe here:
2+
# https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/devise.rb
3+
4+
after_bundler do
5+
say_wizard "recipe running after 'bundle install'"
6+
if prefer :authentication, 'devise'
7+
# prevent logging of password_confirmation
8+
gsub_file 'config/initializers/filter_parameter_logging.rb', /:password/, ':password, :password_confirmation'
9+
generate 'devise:install'
10+
generate 'devise_invitable:install' if prefer :devise_modules, 'invitable'
11+
generate 'devise user' # create the User model
12+
generate 'migration AddNameToUsers name:string'
13+
if (prefer :devise_modules, 'confirmable') || (prefer :devise_modules, 'invitable')
14+
gsub_file 'app/models/user.rb', /:registerable,/, ":registerable, :confirmable,"
15+
generate 'migration AddConfirmableToUsers confirmation_token:string confirmed_at:datetime confirmation_sent_at:datetime unconfirmed_email:string'
16+
end
17+
run 'bundle exec rake db:migrate'
18+
end
19+
### GIT ###
20+
git :add => '-A' if prefer :git, true
21+
git :commit => '-qm "rails_apps_composer: devise"' if prefer :git, true
22+
end
23+
24+
__END__
25+
26+
name: devise
27+
description: "Add Devise for authentication"
28+
author: RailsApps
29+
30+
requires: [setup, gems]
31+
run_after: [setup, gems]
32+
category: mvc

recipes/init.rb

+2-2
Original file line numberDiff line numberDiff line change
@@ -182,6 +182,6 @@
182182
description: "Set up and initialize database."
183183
author: RailsApps
184184

185-
requires: [setup, gems, models]
186-
run_after: [setup, gems, models]
185+
requires: [setup, gems, devise, omniauth]
186+
run_after: [setup, gems, devise, omniauth]
187187
category: initialize

recipes/models.rb

-62
This file was deleted.

recipes/omniauth.rb

+32
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
# Application template recipe for the rails_apps_composer. Change the recipe here:
2+
# https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/omniauth.rb
3+
4+
after_bundler do
5+
say_wizard "recipe running after 'bundle install'"
6+
if prefer :authentication, 'omniauth'
7+
repo = 'https://raw.githubusercontent.com/RailsApps/rails-omniauth/master/'
8+
copy_from_repo 'config/initializers/omniauth.rb', :repo => repo
9+
gsub_file 'config/initializers/omniauth.rb', /twitter/, prefs[:omniauth_provider] unless prefer :omniauth_provider, 'twitter'
10+
generate 'model User name:string email:string provider:string uid:string'
11+
run 'bundle exec rake db:migrate'
12+
copy_from_repo 'app/models/user.rb', :repo => 'https://raw.githubusercontent.com/RailsApps/rails-omniauth/master/'
13+
copy_from_repo 'app/controllers/application_controller.rb', :repo => repo
14+
filename = 'app/controllers/sessions_controller.rb'
15+
copy_from_repo filename, :repo => repo
16+
gsub_file filename, /twitter/, prefs[:omniauth_provider] unless prefer :omniauth_provider, 'twitter'
17+
copy_from_repo 'config/routes.rb', :repo => repo
18+
end
19+
### GIT ###
20+
git :add => '-A' if prefer :git, true
21+
git :commit => '-qm "rails_apps_composer: omniauth"' if prefer :git, true
22+
end
23+
24+
__END__
25+
26+
name: omniauth
27+
description: "Add OmniAuth for authentication"
28+
author: RailsApps
29+
30+
requires: [setup, gems]
31+
run_after: [setup, gems]
32+
category: mvc

recipes/pundit.rb

+33
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
# Application template recipe for the rails_apps_composer. Change the recipe here:
2+
# https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/pundit.rb
3+
4+
after_bundler do
5+
say_wizard "recipe running after 'bundle install'"
6+
if prefer :authorization, 'pundit'
7+
generate 'migration AddRoleToUsers role:integer'
8+
if prefer :authentication, 'devise'
9+
copy_from_repo 'app/models/user.rb', :repo => 'https://raw.githubusercontent.com/RailsApps/rails-devise-pundit/master/'
10+
if (prefer :devise_modules, 'confirmable') || (prefer :devise_modules, 'invitable')
11+
gsub_file 'app/models/user.rb', /:registerable,/, ":registerable, :confirmable,"
12+
generate 'migration AddConfirmableToUsers confirmation_token:string confirmed_at:datetime confirmation_sent_at:datetime unconfirmed_email:string'
13+
end
14+
end
15+
if prefer :authentication, 'omniauth'
16+
# TODO
17+
end
18+
copy_from_repo 'app/controllers/application_controller.rb', :repo => 'https://raw.githubusercontent.com/RailsApps/rails-devise-pundit/master/'
19+
end
20+
### GIT ###
21+
git :add => '-A' if prefer :git, true
22+
git :commit => '-qm "rails_apps_composer: pundit"' if prefer :git, true
23+
end
24+
25+
__END__
26+
27+
name: pundit
28+
description: "Add Pundit for authorization"
29+
author: RailsApps
30+
31+
requires: [setup, gems, devise]
32+
run_after: [setup, gems, devise]
33+
category: mvc

recipes/rails_omniauth.rb

-11
Original file line numberDiff line numberDiff line change
@@ -2,7 +2,6 @@
22
# https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/rails_omniauth.rb
33

44
if prefer :apps4, 'rails-omniauth'
5-
65
prefs[:authentication] = 'omniauth'
76
prefs[:authorization] = 'none'
87
prefs[:better_errors] = true
@@ -13,21 +12,11 @@
1312
prefs[:pry] = false
1413
prefs[:quiet_assets] = true
1514
add_gem 'high_voltage'
16-
1715
after_everything do
1816
generate 'pages:users -f'
1917
generate 'pages:about -f'
2018
generate 'layout:navigation -f'
2119
repo = 'https://raw.githubusercontent.com/RailsApps/rails-omniauth/master/'
22-
23-
# >-------------------------------[ Models ]--------------------------------<
24-
25-
copy_from_repo 'app/models/user.rb', :repo => repo
26-
27-
# >-------------------------------[ Routes ]--------------------------------<
28-
29-
copy_from_repo 'config/routes.rb', :repo => repo
30-
3120
end
3221
end
3322

recipes/setup.rb

+3-7
Original file line numberDiff line numberDiff line change
@@ -75,7 +75,7 @@
7575
end
7676

7777
## Authentication and Authorization
78-
if recipes.include? 'models'
78+
if (recipes.include? 'devise') || (recipes.include? 'omniauth')
7979
prefs[:authentication] = multiple_choice "Authentication?", [["None", "none"], ["Devise", "devise"], ["OmniAuth", "omniauth"]] unless prefs.has_key? :authentication
8080
case prefs[:authentication]
8181
when 'devise'
@@ -85,12 +85,8 @@
8585
prefs[:omniauth_provider] = multiple_choice "OmniAuth provider?", [["Facebook", "facebook"], ["Twitter", "twitter"], ["GitHub", "github"],
8686
["LinkedIn", "linkedin"], ["Google-Oauth-2", "google_oauth2"], ["Tumblr", "tumblr"]] unless prefs.has_key? :omniauth_provider
8787
end
88-
unless prefs.has_key? :authorization
89-
if rails_4_1?
90-
prefs[:authorization] = multiple_choice "Authorization?", [["None", "none"], ["Pundit", "pundit"]]
91-
else
92-
prefs[:authorization] = multiple_choice "Authorization?", [["None", "none"], ["CanCan with Rolify", "cancan"]]
93-
end
88+
unless prefer :authentication, 'omniauth' # TODO -- implement pundit for omniauth
89+
prefs[:authorization] = multiple_choice "Authorization?", [["None", "none"], ["Pundit", "pundit"]] unless prefs.has_key? :authorization
9490
end
9591
end
9692

recipes/views.rb

-32
This file was deleted.

0 commit comments

Comments
 (0)