rails_apps_composer 2.6.13 → 3.0.0

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.
data/recipes/setup.rb CHANGED
@@ -34,51 +34,21 @@ if prefs[:prod_webserver] == 'same'
34
34
  end
35
35
 
36
36
  ## Database Adapter
37
- if rails_4_1?
38
- prefs[:database] = multiple_choice "Database used in development?", [["SQLite", "sqlite"], ["PostgreSQL", "postgresql"],
39
- ["MySQL", "mysql"]] unless prefs.has_key? :database
40
- else
41
- prefs[:database] = multiple_choice "Database used in development?", [["SQLite", "sqlite"], ["PostgreSQL", "postgresql"],
42
- ["MySQL", "mysql"], ["MongoDB", "mongodb"]] unless prefs.has_key? :database
43
- end
44
- case prefs[:database]
45
- when 'mongodb'
46
- unless sqlite_detected
47
- prefs[:orm] = multiple_choice "How will you connect to MongoDB?", [["Mongoid","mongoid"]] unless prefs.has_key? :orm
48
- else
49
- say_wizard "WARNING! SQLite gem detected in the Gemfile"
50
- say_wizard "If you wish to use MongoDB you must skip Active Record."
51
- say_wizard "If using rails_apps_composer, choose 'skip Active Record'."
52
- say_wizard "If using Rails Composer or an application template, use the '-O' flag as in 'rails new foo -O'."
53
- prefs[:fail] = multiple_choice "Abort or continue?", [["abort", "abort"], ["continue", "continue"]]
54
- if prefer :fail, 'abort'
55
- raise StandardError.new "SQLite detected in the Gemfile. Use '-O' or '--skip-activerecord' as in 'rails new foo -O' if you don't want ActiveRecord and SQLite"
56
- end
57
- end
58
- end
37
+ prefs[:database] = multiple_choice "Database used in development?", [["SQLite", "sqlite"], ["PostgreSQL", "postgresql"],
38
+ ["MySQL", "mysql"]] unless prefs.has_key? :database
59
39
 
60
40
  ## Template Engine
61
41
  prefs[:templates] = multiple_choice "Template engine?", [["ERB", "erb"], ["Haml", "haml"], ["Slim", "slim"]] unless prefs.has_key? :templates
62
42
 
63
43
  ## Testing Framework
64
- if rails_4_1?
65
- if recipes.include? 'tests4'
66
- prefs[:tests] = multiple_choice "Test framework?", [["None", "none"],
67
- ["RSpec with Capybara", "rspec"]] unless prefs.has_key? :tests
68
- case prefs[:tests]
69
- when 'rspec'
70
- say_wizard "Adding DatabaseCleaner, FactoryGirl, Faker, Launchy, Selenium"
71
- prefs[:continuous_testing] = multiple_choice "Continuous testing?", [["None", "none"], ["Guard", "guard"]] unless prefs.has_key? :continuous_testing
72
- end
73
- end
74
- else
75
- if recipes.include? 'testing'
76
- prefs[:unit_test] = multiple_choice "Unit testing?", [["Test::Unit", "test_unit"], ["RSpec", "rspec"], ["MiniTest", "minitest"]] unless prefs.has_key? :unit_test
77
- prefs[:integration] = multiple_choice "Integration testing?", [["None", "none"], ["RSpec with Capybara", "rspec-capybara"],
78
- ["Cucumber with Capybara", "cucumber"], ["Turnip with Capybara", "turnip"], ["MiniTest with Capybara", "minitest-capybara"]] unless prefs.has_key? :integration
79
- prefs[:continuous_testing] = multiple_choice "Continuous testing?", [["None", "none"], ["Guard", "guard"]] unless prefs.has_key? :continuous_testing
80
- prefs[:fixtures] = multiple_choice "Fixture replacement?", [["None","none"], ["Factory Girl","factory_girl"], ["Machinist","machinist"], ["Fabrication","fabrication"]] unless prefs.has_key? :fixtures
81
- end
44
+ if recipes.include? 'tests'
45
+ prefs[:tests] = multiple_choice "Test framework?", [["None", "none"],
46
+ ["RSpec with Capybara", "rspec"]] unless prefs.has_key? :tests
47
+ case prefs[:tests]
48
+ when 'rspec'
49
+ say_wizard "Adding DatabaseCleaner, FactoryGirl, Faker, Launchy, Selenium"
50
+ prefs[:continuous_testing] = multiple_choice "Continuous testing?", [["None", "none"], ["Guard", "guard"]] unless prefs.has_key? :continuous_testing
51
+ end
82
52
  end
83
53
 
84
54
  ## Front-end Framework
@@ -101,51 +71,28 @@ else
101
71
  end
102
72
 
103
73
  ## Authentication and Authorization
104
- if recipes.include? 'models'
74
+ if (recipes.include? 'devise') || (recipes.include? 'omniauth')
105
75
  prefs[:authentication] = multiple_choice "Authentication?", [["None", "none"], ["Devise", "devise"], ["OmniAuth", "omniauth"]] unless prefs.has_key? :authentication
106
76
  case prefs[:authentication]
107
77
  when 'devise'
108
- if prefer :orm, 'mongoid'
109
- prefs[:devise_modules] = multiple_choice "Devise modules?", [["Devise with default modules","default"]] unless prefs.has_key? :devise_modules
110
- else
111
- prefs[:devise_modules] = multiple_choice "Devise modules?", [["Devise with default modules","default"],
112
- ["Devise with Confirmable module","confirmable"]] unless prefs.has_key? :devise_modules
113
- end
78
+ prefs[:devise_modules] = multiple_choice "Devise modules?", [["Devise with default modules","default"],
79
+ ["Devise with Confirmable module","confirmable"]] unless prefs.has_key? :devise_modules
114
80
  when 'omniauth'
115
81
  prefs[:omniauth_provider] = multiple_choice "OmniAuth provider?", [["Facebook", "facebook"], ["Twitter", "twitter"], ["GitHub", "github"],
116
82
  ["LinkedIn", "linkedin"], ["Google-Oauth-2", "google_oauth2"], ["Tumblr", "tumblr"]] unless prefs.has_key? :omniauth_provider
117
83
  end
118
- unless prefs.has_key? :authorization
119
- if rails_4_1?
120
- prefs[:authorization] = multiple_choice "Authorization?", [["None", "none"], ["Pundit", "pundit"]]
121
- else
122
- prefs[:authorization] = multiple_choice "Authorization?", [["None", "none"], ["CanCan with Rolify", "cancan"]]
123
- end
124
- end
84
+ prefs[:authorization] = multiple_choice "Authorization?", [["None", "none"], ["Pundit", "pundit"]] unless prefs.has_key? :authorization
125
85
  end
126
86
 
127
87
  ## Form Builder
128
88
  prefs[:form_builder] = multiple_choice "Use a form builder gem?", [["None", "none"], ["SimpleForm", "simple_form"]] unless prefs.has_key? :form_builder
129
89
 
130
- ## MVC
131
- if (recipes.include? 'models') && (recipes.include? 'controllers') && (recipes.include? 'views') && (recipes.include? 'routes')
132
- if (prefer :authorization, 'cancan') or (prefer :authorization, 'pundit')
133
- prefs[:starter_app] = multiple_choice "Install a starter app?", [["None", "none"], ["Home Page", "home_app"],
134
- ["Home Page, User Accounts", "users_app"], ["Home Page, User Accounts, Admin Dashboard", "admin_app"]] unless prefs.has_key? :starter_app
135
- elsif prefer :authentication, 'devise'
136
- if prefer :orm, 'mongoid'
137
- prefs[:starter_app] = multiple_choice "Install a starter app?", [["None", "none"], ["Home Page", "home_app"],
138
- ["Home Page, User Accounts", "users_app"], ["Home Page, User Accounts, Subdomains", "subdomains_app"]] unless prefs.has_key? :starter_app
139
- else
140
- prefs[:starter_app] = multiple_choice "Install a starter app?", [["None", "none"], ["Home Page", "home_app"],
141
- ["Home Page, User Accounts", "users_app"]] unless prefs.has_key? :starter_app
142
- end
143
- elsif prefer :authentication, 'omniauth'
144
- prefs[:starter_app] = multiple_choice "Install a starter app?", [["None", "none"], ["Home Page", "home_app"],
145
- ["Home Page, User Accounts", "users_app"]] unless prefs.has_key? :starter_app
146
- else
147
- prefs[:starter_app] = multiple_choice "Install a starter app?", [["None", "none"], ["Home Page", "home_app"]] unless prefs.has_key? :starter_app
148
- end
90
+ ## Pages
91
+ if recipes.include? 'pages'
92
+ prefs[:pages] = multiple_choice "Add pages?", [["None", "none"],
93
+ ["Home", "home"], ["Home and About", "about"],
94
+ ["Home and Users", "users"],
95
+ ["Home, About, and Users", "about+users"]] unless prefs.has_key? :pages
149
96
  end
150
97
 
151
98
  # save diagnostics before anything can fail
@@ -1,8 +1,8 @@
1
1
  # Application template recipe for the rails_apps_composer. Change the recipe here:
2
- # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/tests4.rb
2
+ # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/tests.rb
3
3
 
4
- after_bundler do
5
- say_wizard "recipe running after 'bundle install'"
4
+ stage_two do
5
+ say_wizard "recipe stage two"
6
6
  if prefer :tests, 'rspec'
7
7
  say_wizard "recipe installing RSpec"
8
8
  generate 'testing:configure rspec -f'
@@ -15,8 +15,8 @@ after_bundler do
15
15
  git :commit => '-qm "rails_apps_composer: testing framework"' if prefer :git, true
16
16
  end
17
17
 
18
- after_everything do
19
- say_wizard "recipe running after everything"
18
+ stage_three do
19
+ say_wizard "recipe stage three"
20
20
  if (prefer :authentication, 'devise') && (prefer :tests, 'rspec')
21
21
  generate 'testing:configure devise -f'
22
22
  end
@@ -30,7 +30,7 @@ end
30
30
 
31
31
  __END__
32
32
 
33
- name: tests4
33
+ name: tests
34
34
  description: "Add testing framework."
35
35
  author: RailsApps
36
36
 
@@ -10,14 +10,6 @@ def say_custom(tag, text); say "\033[1m\033[36m" + tag.to_s.rjust(10) + "\033[0m
10
10
  def say_recipe(name); say "\033[1m\033[36m" + "recipe".rjust(10) + "\033[0m" + " Running #{name} recipe..." end
11
11
  def say_wizard(text); say_custom(@current_recipe || 'composer', text) end
12
12
 
13
- def rails_4?
14
- Rails::VERSION::MAJOR.to_s == "4"
15
- end
16
-
17
- def rails_4_1?
18
- Rails::VERSION::MAJOR.to_s == "4" && Rails::VERSION::MINOR.to_s == "1"
19
- end
20
-
21
13
  def ask_wizard(question)
22
14
  ask "\033[1m\033[36m" + (@current_recipe || "prompt").rjust(10) + "\033[1m\033[36m" + " #{question}\033[0m"
23
15
  end
@@ -51,9 +43,9 @@ end
51
43
  @configs = {}
52
44
 
53
45
  @after_blocks = []
54
- def after_bundler(&block); @after_blocks << [@current_recipe, block]; end
55
- @after_everything_blocks = []
56
- def after_everything(&block); @after_everything_blocks << [@current_recipe, block]; end
46
+ def stage_two(&block); @after_blocks << [@current_recipe, block]; end
47
+ @stage_three_blocks = []
48
+ def stage_three(&block); @stage_three_blocks << [@current_recipe, block]; end
57
49
  @before_configs = {}
58
50
  def before_config(&block); @before_configs[@current_recipe] = block; end
59
51
 
data/templates/layout.erb CHANGED
@@ -116,7 +116,7 @@ say_wizard("\033[1m\033[36m" + " \| \| \| \|" + "\
116
116
  say_wizard("\033[1m\033[36m" + " \| \| \| \|" + "\033[0m")
117
117
  say_wizard("\033[1m\033[36m" + '' + "\033[0m")
118
118
  say_wizard("\033[1m\033[36m" + "Rails Composer, open source, supported by subscribers." + "\033[0m")
119
- say_wizard("\033[1m\033[36m" + "Please join RailsApps and support development of Rails Composer." + "\033[0m")
119
+ say_wizard("\033[1m\033[36m" + "Please join RailsApps to support development of Rails Composer." + "\033[0m")
120
120
  say_wizard("Need help? Ask on Stack Overflow with the tag \'railsapps.\'")
121
121
  say_wizard("Your new application will contain diagnostics in its README file.")
122
122
 
@@ -199,9 +199,9 @@ say_wizard "Installing gems. This will take a while."
199
199
  run 'bundle install --without production'
200
200
  say_wizard "Updating gem paths."
201
201
  Gem.clear_paths
202
- # >-----------------------------[ Run 'After Bundler' Callbacks ]-------------------------------<
202
+ # >-----------------------------[ Run 'stage_two' Callbacks ]-------------------------------<
203
203
 
204
- say_wizard "Running 'after bundler' callbacks."
204
+ say_wizard "Stage Two (running recipe 'stage_two' callbacks)."
205
205
  if prefer :templates, 'haml'
206
206
  say_wizard "importing html2haml conversion tool"
207
207
  require 'html2haml'
@@ -213,11 +213,11 @@ say_wizard "importing html2haml and haml2slim conversion tools"
213
213
  end
214
214
  @after_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; puts @current_recipe; b[1].call}
215
215
 
216
- # >-----------------------------[ Run 'After Everything' Callbacks ]-------------------------------<
216
+ # >-----------------------------[ Run 'stage_three' Callbacks ]-------------------------------<
217
217
 
218
218
  @current_recipe = nil
219
- say_wizard "Running 'after everything' callbacks."
220
- @after_everything_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; puts @current_recipe; b[1].call}
219
+ say_wizard "Stage Three (running recipe 'stage_three' callbacks)."
220
+ @stage_three_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; puts @current_recipe; b[1].call}
221
221
 
222
222
  @current_recipe = nil
223
223
  say_wizard("Your new application will contain diagnostics in its README file.")
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RailsWizard
2
- VERSION = "2.6.13"
2
+ VERSION = "3.0.0"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rails_apps_composer
3
3
  version: !ruby/object:Gem::Version
4
- version: 2.6.13
4
+ version: 3.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Kehoe
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-15 00:00:00.000000000 Z
11
+ date: 2014-06-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: i18n
@@ -119,9 +119,9 @@ files:
119
119
  - lib/rails_wizard/recipes.rb
120
120
  - lib/rails_wizard/template.rb
121
121
  - recipes/admin.rb
122
- - recipes/controllers.rb
123
122
  - recipes/core.rb
124
123
  - recipes/deployment.rb
124
+ - recipes/devise.rb
125
125
  - recipes/email.rb
126
126
  - recipes/email_dev.rb
127
127
  - recipes/example.rb
@@ -131,8 +131,8 @@ files:
131
131
  - recipes/git.rb
132
132
  - recipes/init.rb
133
133
  - recipes/learn_rails.rb
134
- - recipes/models.rb
135
- - recipes/prelaunch.rb
134
+ - recipes/omniauth.rb
135
+ - recipes/pages.rb
136
136
  - recipes/rails_bootstrap.rb
137
137
  - recipes/rails_devise.rb
138
138
  - recipes/rails_devise_pundit.rb
@@ -141,12 +141,9 @@ files:
141
141
  - recipes/rails_signup_download.rb
142
142
  - recipes/railsapps.rb
143
143
  - recipes/readme.rb
144
- - recipes/routes.rb
145
- - recipes/saas.rb
144
+ - recipes/roles.rb
146
145
  - recipes/setup.rb
147
- - recipes/testing.rb
148
- - recipes/tests4.rb
149
- - recipes/views.rb
146
+ - recipes/tests.rb
150
147
  - spec/rails_wizard/config_spec.rb
151
148
  - spec/rails_wizard/recipe_spec.rb
152
149
  - spec/rails_wizard/recipes/sanity_spec.rb
@@ -1,86 +0,0 @@
1
- # Application template recipe for the rails_apps_composer. Change the recipe here:
2
- # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/controllers.rb
3
-
4
- after_bundler do
5
- say_wizard "recipe running after 'bundle install'"
6
- ### APPLICATION_CONTROLLER ###
7
- if prefer :authentication, 'omniauth'
8
- copy_from_repo 'app/controllers/application_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails-omniauth/master/'
9
- end
10
- if prefer :authorization, 'pundit'
11
- copy_from_repo 'app/controllers/application_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails-devise-pundit/master/'
12
- end
13
- if prefer :authorization, 'cancan'
14
- inject_into_file 'app/controllers/application_controller.rb', :before => "\nend" do <<-RUBY
15
- \n
16
- rescue_from CanCan::AccessDenied do |exception|
17
- redirect_to root_path, :alert => exception.message
18
- end
19
- RUBY
20
- end
21
- end
22
- ### HOME_CONTROLLER ###
23
- if ['home_app','users_app','admin_app','subdomains_app'].include? prefs[:starter_app]
24
- generate 'controller home --skip-assets --skip-helper'
25
- end
26
- ### USERS_CONTROLLER ###
27
- case prefs[:starter_app]
28
- when 'users_app'
29
- if (prefer :authentication, 'devise') and (not prefer :apps4, 'rails-devise')
30
- copy_from_repo 'app/controllers/users_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails3-devise-rspec-cucumber/master/'
31
- elsif prefer :authentication, 'omniauth'
32
- if rails_4?
33
- copy_from_repo 'app/controllers/users_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails-omniauth/master/'
34
- else
35
- copy_from_repo 'app/controllers/users_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails3-mongoid-omniauth/master/'
36
- end
37
- end
38
- when 'admin_app'
39
- if (prefer :authentication, 'devise') and (not prefer :apps4, 'rails-devise')
40
- copy_from_repo 'app/controllers/users_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails3-bootstrap-devise-cancan/master/'
41
- elsif prefer :authentication, 'omniauth'
42
- if rails_4?
43
- copy_from_repo 'app/controllers/users_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails-omniauth/master/'
44
- else
45
- copy_from_repo 'app/controllers/users_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails3-mongoid-omniauth/master/'
46
- end
47
- end
48
- if prefer :authorization, 'pundit'
49
- copy_from_repo 'app/controllers/users_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails-devise-pundit/master/'
50
- copy_from_repo 'app/policies/user_policy.rb', :repo => 'https://raw.github.com/RailsApps/rails-devise-pundit/master/'
51
- end
52
- when 'subdomains_app'
53
- copy_from_repo 'app/controllers/users_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails3-subdomains/master/'
54
- end
55
- ### REGISTRATIONS_CONTROLLER ###
56
- if rails_4?
57
- if ['users_app','admin_app','subdomains_app'].include? prefs[:starter_app]
58
- ## accommodate strong parameters in Rails 4
59
- copy_from_repo 'app/controllers/registrations_controller-devise.rb', :prefs => 'devise'
60
- end
61
- end
62
- ### SESSIONS_CONTROLLER ###
63
- if prefer :authentication, 'omniauth'
64
- filename = 'app/controllers/sessions_controller.rb'
65
- copy_from_repo filename, :repo => 'https://raw.github.com/RailsApps/rails-omniauth/master/'
66
- gsub_file filename, /twitter/, prefs[:omniauth_provider] unless prefer :omniauth_provider, 'twitter'
67
- if prefer :authorization, 'cancan'
68
- inject_into_file filename, " user.add_role :admin if User.count == 1 # make the first user an admin\n", :after => "session[:user_id] = user.id\n"
69
- end
70
- end
71
- ### PROFILES_CONTROLLER ###
72
- copy_from_repo 'app/controllers/profiles_controller.rb', :repo => 'https://raw.github.com/RailsApps/rails3-subdomains/master/' if prefer :starter_app, 'subdomains_app'
73
- ### GIT ###
74
- git :add => '-A' if prefer :git, true
75
- git :commit => '-qm "rails_apps_composer: controllers"' if prefer :git, true
76
- end # after_bundler
77
-
78
- __END__
79
-
80
- name: controllers
81
- description: "Add controllers needed for starter apps."
82
- author: RailsApps
83
-
84
- requires: [setup, gems, models]
85
- run_after: [setup, gems, models]
86
- category: mvc
data/recipes/models.rb DELETED
@@ -1,112 +0,0 @@
1
- # Application template recipe for the rails_apps_composer. Change the recipe here:
2
- # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/models.rb
3
-
4
- after_bundler do
5
- say_wizard "recipe running after 'bundle install'"
6
- ### DEVISE ###
7
- if prefer :authentication, 'devise'
8
- if rails_4_1?
9
- # prevent logging of password_confirmation
10
- gsub_file 'config/initializers/filter_parameter_logging.rb', /:password/, ':password, :password_confirmation'
11
- end
12
- generate 'devise:install'
13
- generate 'devise_invitable:install' if prefer :devise_modules, 'invitable'
14
- generate 'devise user' # create the User model
15
- if prefer :orm, 'mongoid'
16
- ## DEVISE AND MONGOID
17
- copy_from_repo 'app/models/user.rb', :repo => 'https://raw.github.com/RailsApps/rails3-mongoid-devise/master/' unless rails_4?
18
- if (prefer :devise_modules, 'confirmable') || (prefer :devise_modules, 'invitable')
19
- gsub_file 'app/models/user.rb', /:registerable,/, ":registerable, :confirmable,"
20
- gsub_file 'app/models/user.rb', /# field :confirmation_token/, "field :confirmation_token"
21
- gsub_file 'app/models/user.rb', /# field :confirmed_at/, "field :confirmed_at"
22
- gsub_file 'app/models/user.rb', /# field :confirmation_sent_at/, "field :confirmation_sent_at"
23
- gsub_file 'app/models/user.rb', /# field :unconfirmed_email/, "field :unconfirmed_email"
24
- end
25
- if (prefer :devise_modules, 'invitable')
26
- gsub_file 'app/models/user.rb', /\bend\s*\Z/ do
27
- <<-RUBY
28
- #invitable
29
- field :invitation_token, :type => String
30
- field :invitation_sent_at, :type => Time
31
- field :invitation_accepted_at, :type => Time
32
- field :invitation_limit, :type => Integer
33
- field :invited_by_id, :type => String
34
- field :invited_by_type, :type => String
35
- end
36
- RUBY
37
- end
38
- end
39
- else
40
- ## DEVISE AND ACTIVE RECORD
41
- unless prefer :railsapps, 'rails-recurly-subscription-saas'
42
- generate 'migration AddNameToUsers name:string'
43
- end
44
- copy_from_repo 'app/models/user.rb', :repo => 'https://raw.github.com/RailsApps/rails3-devise-rspec-cucumber/master/' unless rails_4?
45
- if (prefer :devise_modules, 'confirmable') || (prefer :devise_modules, 'invitable')
46
- gsub_file 'app/models/user.rb', /:registerable,/, ":registerable, :confirmable,"
47
- generate 'migration AddConfirmableToUsers confirmation_token:string confirmed_at:datetime confirmation_sent_at:datetime unconfirmed_email:string'
48
- end
49
- run 'bundle exec rake db:migrate'
50
- end
51
- ## DEVISE AND CUCUMBER
52
- if prefer :integration, 'cucumber'
53
- # Cucumber wants to test GET requests not DELETE requests for destroy_user_session_path
54
- # (see https://github.com/RailsApps/rails3-devise-rspec-cucumber/issues/3)
55
- gsub_file 'config/initializers/devise.rb', 'config.sign_out_via = :delete', 'config.sign_out_via = Rails.env.test? ? :get : :delete'
56
- end
57
- end
58
- ### OMNIAUTH ###
59
- if prefer :authentication, 'omniauth'
60
- if rails_4_1?
61
- copy_from_repo 'config/initializers/omniauth.rb', :repo => 'https://raw.github.com/RailsApps/rails-omniauth/master/'
62
- else
63
- copy_from_repo 'config/initializers/omniauth.rb', :repo => 'https://raw.github.com/RailsApps/rails3-mongoid-omniauth/master/'
64
- end
65
- gsub_file 'config/initializers/omniauth.rb', /twitter/, prefs[:omniauth_provider] unless prefer :omniauth_provider, 'twitter'
66
- if prefer :orm, 'mongoid'
67
- copy_from_repo 'app/models/user.rb', :repo => 'https://raw.github.com/RailsApps/rails3-mongoid-omniauth/master/'
68
- else
69
- generate 'model User name:string email:string provider:string uid:string'
70
- run 'bundle exec rake db:migrate'
71
- copy_from_repo 'app/models/user.rb', :repo => 'https://raw.github.com/RailsApps/rails-omniauth/master/'
72
- end
73
- end
74
- ### SUBDOMAINS ###
75
- copy_from_repo 'app/models/user.rb', :repo => 'https://raw.github.com/RailsApps/rails3-subdomains/master/' if prefer :starter_app, 'subdomains_app'
76
- ### AUTHORIZATION ###
77
- if prefer :authorization, 'pundit'
78
- generate 'migration AddRoleToUsers role:integer'
79
- copy_from_repo 'app/models/user.rb', :repo => 'https://raw.github.com/RailsApps/rails-devise-pundit/master/'
80
- if (prefer :devise_modules, 'confirmable') || (prefer :devise_modules, 'invitable')
81
- gsub_file 'app/models/user.rb', /:registerable,/, ":registerable, :confirmable,"
82
- generate 'migration AddConfirmableToUsers confirmation_token:string confirmed_at:datetime confirmation_sent_at:datetime unconfirmed_email:string'
83
- end
84
- end
85
- if prefer :authorization, 'cancan'
86
- generate 'cancan:ability'
87
- if prefer :starter_app, 'admin_app'
88
- # Limit access to the users#index page
89
- copy_from_repo 'app/models/ability.rb', :repo => 'https://raw.github.com/RailsApps/rails3-bootstrap-devise-cancan/master/'
90
- # allow an admin to update roles
91
- insert_into_file 'app/models/user.rb', " attr_accessible :role_ids, :as => :admin\n", :before => " attr_accessible"
92
- end
93
- unless prefer :orm, 'mongoid'
94
- generate 'rolify Role User'
95
- else
96
- generate 'rolify Role User --orm=mongoid'
97
- end
98
- end
99
- ### GIT ###
100
- git :add => '-A' if prefer :git, true
101
- git :commit => '-qm "rails_apps_composer: models"' if prefer :git, true
102
- end # after_bundler
103
-
104
- __END__
105
-
106
- name: models
107
- description: "Add models needed for starter apps."
108
- author: RailsApps
109
-
110
- requires: [setup, gems]
111
- run_after: [setup, gems]
112
- category: mvc