rails3_devise_wizard 0.2.8 → 0.3.1
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +101 -12
- data/recipes/cucumber.rb +1 -1
- data/recipes/devise.rb +6 -6
- data/recipes/git.rb +11 -0
- data/recipes/jquery.rb +39 -23
- data/recipes/omniauth.rb +50 -52
- data/recipes/omniauth_email.rb +7 -6
- data/recipes/rspec.rb +15 -3
- data/templates/layout.erb +19 -2
- data/version.rb +1 -1
- metadata +4 -4
data/README.textile
CHANGED
@@ -71,7 +71,7 @@ $ rails3_devise_wizard new APP_NAME -r jquery haml
|
|
71
71
|
To build the "rails3-mongoid-devise":http://github.com/fortuity/rails3-mongoid-devise/ example application, run the command:
|
72
72
|
|
73
73
|
<pre>
|
74
|
-
$ rails3_devise_wizard new APP_NAME -r jquery haml rspec cucumber mongoid action_mailer devise
|
74
|
+
$ rails3_devise_wizard new APP_NAME -r jquery haml rspec cucumber mongoid action_mailer devise add_user home_page home_page_users seed_database users_page css_setup application_layout devise_navigation cleanup ban_spiders git
|
75
75
|
</pre>
|
76
76
|
|
77
77
|
h2. Make Your Own Starter App with a Reusable Application Template
|
@@ -100,33 +100,122 @@ The rails3_devise_wizard gem creates an application template as an intermediate
|
|
100
100
|
$ rake print --silent RECIPES=recipe1,recipe2 > ~/Desktop/template.txt
|
101
101
|
</pre>
|
102
102
|
|
103
|
-
|
103
|
+
If you don't include the @--silent@ option, the rake task will generate the application template with an extraneous first line. Open the template file and remove the first line if you encounter this problem.
|
104
|
+
|
105
|
+
The rails3_devise_wizard gem creates an application template that can be used by the @rails new@ command with the @-m@ option. For example:
|
104
106
|
|
105
107
|
<pre>
|
106
|
-
$
|
108
|
+
$ rails new testapp -m ~/Desktop/template.txt
|
107
109
|
</pre>
|
108
110
|
|
109
|
-
|
111
|
+
You can specify the @-T -O -J@ flags as needed to skip Test::Unit files, Active Record files, and Prototype files.
|
110
112
|
|
111
|
-
|
113
|
+
That's all it takes. You'll have a ready-to-customize Rails web application in minutes.
|
112
114
|
|
113
|
-
h4.
|
115
|
+
h4. Template for Rails 3 + Devise + RSpec + Cucumber
|
114
116
|
|
115
|
-
|
117
|
+
To build a reusable application template for the "rails3-devise-rspec-cucumber":http://github.com/fortuity/rails3-devise-rspec-cucumber/ example application, run the command:
|
116
118
|
|
117
119
|
<pre>
|
118
|
-
$
|
120
|
+
$ rake print --silent RECIPES=jquery,haml,rspec,cucumber,action_mailer,devise,add_user,home_page,home_page_users,seed_database,users_page,css_setup,application_layout,devise_navigation,cleanup,ban_spiders,git > ~/Desktop/template.txt
|
119
121
|
</pre>
|
120
122
|
|
121
|
-
|
123
|
+
Then generate the application using the @-T -J@ flags:
|
122
124
|
|
123
|
-
|
125
|
+
<pre>
|
126
|
+
$ rails new testapp -m ~/Desktop/template.txt -T -J
|
127
|
+
</pre>
|
128
|
+
|
129
|
+
h4. Template for Rails 3 + Mongoid + Devise
|
130
|
+
|
131
|
+
To build a reusable application template for the "rails3-mongoid-devise":http://github.com/fortuity/rails3-mongoid-devise/ example application, run the command:
|
124
132
|
|
125
133
|
<pre>
|
126
|
-
$
|
134
|
+
$ rake print --silent RECIPES=jquery,haml,rspec,cucumber,mongoid,action_mailer,devise,add_user,home_page,home_page_users,seed_database,users_page,css_setup,application_layout,devise_navigation,cleanup,ban_spiders,git > ~/Desktop/template.txt
|
127
135
|
</pre>
|
128
136
|
|
129
|
-
|
137
|
+
Then generate the application using the @-T -O -J@ flags:
|
138
|
+
|
139
|
+
<pre>
|
140
|
+
$ rails new testapp -m ~/Desktop/template.txt -T -O -J
|
141
|
+
</pre>
|
142
|
+
|
143
|
+
h4. Template for Rails 3 + Mongoid + OmniAuth
|
144
|
+
|
145
|
+
To build a reusable application template for the "rails3-mongoid-omniauth":http://github.com/fortuity/rails3-mongoid-omniauth/ example application, run the command:
|
146
|
+
|
147
|
+
<pre>
|
148
|
+
$ rake print --silent RECIPES=jquery,haml,rspec,cucumber,mongoid,seed_database,add_user,omniauth,home_page,home_page_users,css_setup,application_layout,navigation,users_page,omniauth_email,cleanup,ban_spiders,git > ~/Desktop/template.txt
|
149
|
+
</pre>
|
150
|
+
|
151
|
+
Then generate the application using the @-T -O -J@ flags:
|
152
|
+
|
153
|
+
<pre>
|
154
|
+
$ rails new testapp -m ~/Desktop/template.txt -T -O -J
|
155
|
+
</pre>
|
156
|
+
|
157
|
+
h2. The Recipes
|
158
|
+
|
159
|
+
The following recipes are available.
|
160
|
+
|
161
|
+
h4. Recipes for General Use
|
162
|
+
|
163
|
+
|_. File |_. |_. Dependencies |_. Authors |
|
164
|
+
| "action_mailer.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/action_mailer.rb | Changes ActionMailer defaults | none | dkehoe |
|
165
|
+
| "ban_spiders.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/ban_spiders.rb | Ban spiders from your site by changing robots.txt | none | dkehoe |
|
166
|
+
| "cleanup.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/cleanup.rb | Remove unnecessary files, add READMEs | none | fnichol, dkehoe |
|
167
|
+
| "git.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/git.rb | Add a gitignore file, initialize new Git repo | Git | fnichol, dkehoe |
|
168
|
+
| "sample_readme.textile":https://github.com/fortuity/rails-template-recipes/raw/master/sample_readme.textile | Placeholder text for a README file (textile markup) | none | dkehoe |
|
169
|
+
| "sample_readme.txt":https://github.com/fortuity/rails-template-recipes/raw/master/sample_readme.txt | Placeholder text for a README file (ASCII) | none | dkehoe |
|
170
|
+
|
171
|
+
h4. Recipes for Testing and BDD
|
172
|
+
|
173
|
+
|_. File |_. |_. Dependencies |_. Authors |
|
174
|
+
| "rspec.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/rspec.rb | Install RSpec | none | rbrooker, dkehoe |
|
175
|
+
| "cucumber.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/cucumber.rb | Install Cucumber | none | rbrooker, dkehoe |
|
176
|
+
|
177
|
+
h4. Recipes for Mongoid
|
178
|
+
|
179
|
+
|_. File |_. |_. Dependencies |_. Authors |
|
180
|
+
| "mongoid.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/mongoid.rb | Installs Mongoid with the bson_ext gem | Mongoid | dkehoe |
|
181
|
+
|
182
|
+
h4. Recipes for jQuery
|
183
|
+
|
184
|
+
|_. File |_. |_. Dependencies |_. Authors |
|
185
|
+
| "jquery.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/jquery_fix.rb | Installs jQuery | none | dkehoe |
|
186
|
+
|
187
|
+
h4. Recipes for Devise
|
188
|
+
|
189
|
+
|_. File |_. |_. Dependencies |_. Authors |
|
190
|
+
| "devise.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/devise.rb | Installs Devise | none | dkehoe |
|
191
|
+
|
192
|
+
h4. Recipes for OmniAuth
|
193
|
+
|
194
|
+
|_. File |_. |_. Dependencies |_. Authors |
|
195
|
+
| "omniauth.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/omniauth.rb | OmniAuth for authentication | none | dkehoe |
|
196
|
+
| "omniauth_email.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/omniauth_email.rb | Requests a new uer's email address when authenticating with Twitter, etc. | OmniAuth | dkehoe |
|
197
|
+
|
198
|
+
h4. Recipes for Haml
|
199
|
+
|
200
|
+
|_. File |_. |_. Dependencies |_. Authors |
|
201
|
+
| "haml.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/haml.rb | Installs Haml | none | dkehoe |
|
202
|
+
|
203
|
+
h4. Recipes for the Application Layout
|
204
|
+
|
205
|
+
|_. File |_. |_. Dependencies |_. Authors |
|
206
|
+
| "application_layout.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/application_layout.rb | Adds application layout with flash messages | ERB or Haml | dkehoe |
|
207
|
+
| "css_setup.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/css_setup.rb | Add a stylesheet with styles for a horizontal menu and flash messages | none | dkehoe |
|
208
|
+
|
209
|
+
h4. Recipes for the Example Apps
|
210
|
+
|
211
|
+
|_. File |_. |_. Dependencies |_. Authors |
|
212
|
+
| "add_user.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/add_user.rb | adds User model for use with OmniAuth or Devise | none | dkehoe |
|
213
|
+
| "navigation.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/_navigation.rb | Add navigation links to the default application layout | none | dkehoe |
|
214
|
+
| "devise_navigation.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/devise_navigation.rb | Add navigation links to the default application layout | Devise | dkehoe |
|
215
|
+
| "home_page.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/home_page.rb | Create a home controller, route, and simple view | ERB or Haml | dkehoe |
|
216
|
+
| "home_page_users.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/home_page_users.rb | Modify a home page to display a list of users | Home controller, User model, ERB or Haml | dkehoe |
|
217
|
+
| "seed_database.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/seed_database.rb | Adds a db/seeds.rb file to initialize a database | none | dkehoe |
|
218
|
+
| "users_page.rb":https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/users_page.rb | Add a home page containing links to User pages | User model, ERB or Haml | dkehoe |
|
130
219
|
|
131
220
|
h2. Writing New Recipes
|
132
221
|
|
data/recipes/cucumber.rb
CHANGED
@@ -3,7 +3,7 @@
|
|
3
3
|
|
4
4
|
if config['cucumber']
|
5
5
|
gem 'cucumber-rails', ">= 0.4.1", :group => :test
|
6
|
-
gem 'capybara', ">=
|
6
|
+
gem 'capybara', ">= 0.4.1.2", :group => :test
|
7
7
|
gem 'database_cleaner', '>= 0.6.7', :group => :test
|
8
8
|
gem 'launchy', ">= 0.4.0", :group => :test
|
9
9
|
else
|
data/recipes/devise.rb
CHANGED
@@ -35,20 +35,20 @@ if config['devise']
|
|
35
35
|
say_wizard "Devise recipe running 'after everything'"
|
36
36
|
|
37
37
|
if recipes.include? 'rspec'
|
38
|
-
say_wizard "Copying RSpec files from the rails3-
|
39
|
-
# copy all the RSpec specs files from the rails3-
|
38
|
+
say_wizard "Copying RSpec files from the rails3-devise-rspec-cucumber examples"
|
39
|
+
# copy all the RSpec specs files from the rails3-devise-rspec-cucumber example app
|
40
40
|
inside 'spec' do
|
41
|
-
get 'https://github.com/fortuity/rails3-
|
41
|
+
get 'https://github.com/fortuity/rails3-devise-rspec-cucumber/raw/master/spec/factories.rb', 'factories.rb'
|
42
42
|
end
|
43
43
|
remove_file 'spec/controllers/home_controller_spec.rb'
|
44
44
|
remove_file 'spec/controllers/users_controller_spec.rb'
|
45
45
|
inside 'spec/controllers' do
|
46
|
-
get 'https://github.com/fortuity/rails3-
|
47
|
-
get 'https://github.com/fortuity/rails3-
|
46
|
+
get 'https://github.com/fortuity/rails3-devise-rspec-cucumber/raw/master/spec/controllers/home_controller_spec.rb', 'home_controller_spec.rb'
|
47
|
+
get 'https://github.com/fortuity/rails3-devise-rspec-cucumber/raw/master/spec/controllers/users_controller_spec.rb', 'users_controller_spec.rb'
|
48
48
|
end
|
49
49
|
remove_file 'spec/models/user_spec.rb'
|
50
50
|
inside 'spec/models' do
|
51
|
-
get 'https://github.com/fortuity/rails3-
|
51
|
+
get 'https://github.com/fortuity/rails3-devise-rspec-cucumber/raw/master/spec/models/user_spec.rb', 'user_spec.rb'
|
52
52
|
end
|
53
53
|
remove_file 'spec/views/home/index.html.erb_spec.rb'
|
54
54
|
remove_file 'spec/views/home/index.html.haml_spec.rb'
|
data/recipes/git.rb
CHANGED
@@ -2,10 +2,21 @@
|
|
2
2
|
# https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/git.rb
|
3
3
|
|
4
4
|
after_everything do
|
5
|
+
|
5
6
|
say_wizard "Git recipe running 'after everything'"
|
7
|
+
|
6
8
|
# Git should ignore some files
|
7
9
|
remove_file '.gitignore'
|
8
10
|
get "https://github.com/fortuity/rails3-gitignore/raw/master/gitignore.txt", ".gitignore"
|
11
|
+
|
12
|
+
if recipes.include? 'omniauth'
|
13
|
+
append_file '.gitignore' do <<-TXT
|
14
|
+
# keep OmniAuth service provider secrets out of the Git repo
|
15
|
+
config/initializers/omniauth.rb
|
16
|
+
TXT
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
9
20
|
# Initialize new Git repo
|
10
21
|
git :init
|
11
22
|
git :add => '.'
|
data/recipes/jquery.rb
CHANGED
@@ -2,41 +2,57 @@
|
|
2
2
|
# https://github.com/fortuity/rails3_devise_wizard/blob/master/recipes/jquery.rb
|
3
3
|
|
4
4
|
if config['jquery']
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
5
|
+
if recipes.include? 'rails 3.0'
|
6
|
+
say_wizard "Replacing Prototype framework with jQuery for Rails 3.0."
|
7
|
+
after_bundler do
|
8
|
+
say_wizard "jQuery recipe running 'after bundler'"
|
9
|
+
# remove the Prototype adapter file
|
10
|
+
remove_file 'public/javascripts/rails.js'
|
11
|
+
# remove the Prototype files (if they exist)
|
12
|
+
remove_file 'public/javascripts/controls.js'
|
13
|
+
remove_file 'public/javascripts/dragdrop.js'
|
14
|
+
remove_file 'public/javascripts/effects.js'
|
15
|
+
remove_file 'public/javascripts/prototype.js'
|
16
|
+
# add jQuery files
|
17
|
+
inside "public/javascripts" do
|
18
|
+
get "https://github.com/rails/jquery-ujs/raw/master/src/rails.js", "rails.js"
|
19
|
+
get "http://code.jquery.com/jquery-1.6.min.js", "jquery.js"
|
20
|
+
if config['ui']
|
21
|
+
get "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js", "jqueryui.js"
|
22
|
+
end
|
23
|
+
end
|
24
|
+
# adjust the Javascript defaults
|
25
|
+
# first uncomment "config.action_view.javascript_expansions"
|
26
|
+
gsub_file "config/application.rb", /# config.action_view.javascript_expansions/, "config.action_view.javascript_expansions"
|
27
|
+
# then add "jquery rails" if necessary
|
28
|
+
gsub_file "config/application.rb", /= \%w\(\)/, "%w(jquery rails)"
|
29
|
+
# finally change to "jquery jqueryui rails" if necessary
|
20
30
|
if config['ui']
|
21
|
-
|
31
|
+
gsub_file "config/application.rb", /jquery rails/, "jquery jqueryui rails"
|
22
32
|
end
|
23
33
|
end
|
24
|
-
|
34
|
+
elsif recipes.include? 'rails 3.1'
|
25
35
|
if config['ui']
|
26
|
-
|
36
|
+
inside "app/assets/javascripts" do
|
37
|
+
get "https://ajax.googleapis.com/ajax/libs/jqueryui/1.8.12/jquery-ui.min.js", "jqueryui.js"
|
38
|
+
end
|
27
39
|
else
|
28
|
-
|
29
|
-
end
|
30
|
-
|
40
|
+
say_wizard "jQuery installed by default in Rails 3.1."
|
41
|
+
end
|
42
|
+
else
|
43
|
+
say_wizard "Don't know what to do for Rails version #{Rails::VERSION::STRING}. jQuery recipe skipped."
|
31
44
|
end
|
32
45
|
else
|
46
|
+
if config['ui']
|
47
|
+
say_wizard "You said you didn't want jQuery. Can't install jQuery UI without jQuery."
|
48
|
+
end
|
33
49
|
recipes.delete('jquery')
|
34
50
|
end
|
35
51
|
|
36
52
|
__END__
|
37
53
|
|
38
54
|
name: jQuery
|
39
|
-
description: "
|
55
|
+
description: "Install jQuery (with jQuery UI option) for Rails 3.0 or 3.1."
|
40
56
|
author: fortuity
|
41
57
|
|
42
58
|
exclusive: javascript_framework
|
@@ -48,7 +64,7 @@ args: ["-J"]
|
|
48
64
|
config:
|
49
65
|
- jquery:
|
50
66
|
type: boolean
|
51
|
-
prompt: Would you like to use jQuery
|
67
|
+
prompt: Would you like to use jQuery?
|
52
68
|
- ui:
|
53
69
|
type: boolean
|
54
70
|
prompt: Would you like to use jQuery UI?
|
data/recipes/omniauth.rb
CHANGED
@@ -9,84 +9,81 @@ end
|
|
9
9
|
|
10
10
|
if config['omniauth']
|
11
11
|
after_bundler do
|
12
|
-
|
13
|
-
|
12
|
+
|
13
|
+
# Don't use single-quote-style-heredoc: we want interpolation.
|
14
|
+
create_file 'config/initializers/omniauth.rb' do <<-RUBY
|
14
15
|
Rails.application.config.middleware.use OmniAuth::Builder do
|
15
|
-
provider
|
16
|
+
provider :#{config['provider']}, 'KEY', 'SECRET'
|
16
17
|
end
|
17
18
|
RUBY
|
18
|
-
|
19
|
+
end
|
19
20
|
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
21
|
+
route "match '/auth/failure' => 'sessions#failure'"
|
22
|
+
route "match '/signout' => 'sessions#destroy', :as => :signout"
|
23
|
+
route "match '/signin' => 'sessions#new', :as => :signin"
|
24
|
+
route "match '/auth/:provider/callback' => 'sessions#create'"
|
25
|
+
route "resources :users, :only => [ :show, :edit, :update ]"
|
26
|
+
|
27
|
+
inject_into_file 'app/models/user.rb', :before => 'end' do <<-RUBY
|
26
28
|
|
27
|
-
inject_into_file 'config/routes.rb', :before => 'end' do
|
28
|
-
"resources :users, :only => [ :show, :edit, :update ]\n"
|
29
|
-
end
|
30
|
-
inject_into_file 'config/routes.rb', :before => 'end' do
|
31
|
-
"match '/auth/:provider/callback' => 'sessions#create'\n"
|
32
|
-
end
|
33
|
-
inject_into_file 'config/routes.rb', :before => 'end' do
|
34
|
-
"match '/signout' => 'sessions#destroy', :as => :signout\n"
|
35
|
-
end
|
36
|
-
inject_into_file 'config/routes.rb', :before => 'end' do
|
37
|
-
"match '/signin' => 'sessions#new', :as => :signin\n"
|
38
|
-
end
|
39
|
-
inject_into_file 'config/routes.rb', :before => 'end' do
|
40
|
-
"match '/auth/failure' => 'sessions#failure'\n"
|
41
|
-
end
|
42
|
-
|
43
|
-
inject_into_file 'app/models/user.rb', :before => 'end' do <<-RUBY
|
44
29
|
def self.create_with_omniauth(auth)
|
45
|
-
|
46
|
-
|
47
|
-
|
48
|
-
|
49
|
-
|
50
|
-
|
51
|
-
|
30
|
+
begin
|
31
|
+
create! do |user|
|
32
|
+
user.provider = auth['provider']
|
33
|
+
user.uid = auth['uid']
|
34
|
+
if auth['user_info']
|
35
|
+
user.name = auth['user_info']['name'] if auth['user_info']['name'] # Twitter, Google, Yahoo, GitHub
|
36
|
+
user.email = auth['user_info']['email'] if auth['user_info']['email'] # Google, Yahoo, GitHub
|
37
|
+
end
|
38
|
+
if auth['extra']['user_hash']
|
39
|
+
user.name = auth['extra']['user_hash']['name'] if auth['extra']['user_hash']['name'] # Facebook
|
40
|
+
user.email = auth['extra']['user_hash']['email'] if auth['extra']['user_hash']['email'] # Facebook
|
41
|
+
end
|
42
|
+
end
|
43
|
+
rescue Exception
|
44
|
+
raise Exception, "cannot create user record"
|
52
45
|
end
|
53
46
|
end
|
47
|
+
|
54
48
|
RUBY
|
55
|
-
|
49
|
+
end
|
56
50
|
|
57
|
-
|
51
|
+
# We have to use single-quote-style-heredoc to avoid interpolation.
|
52
|
+
create_file 'app/controllers/sessions_controller.rb', do <<-'RUBY'
|
58
53
|
class SessionsController < ApplicationController
|
59
|
-
|
60
|
-
def new
|
61
|
-
redirect_to '/auth/provider}'
|
62
|
-
end
|
63
|
-
|
54
|
+
|
64
55
|
def create
|
65
56
|
auth = request.env["omniauth.auth"]
|
66
57
|
user = User.where(:provider => auth['provider'],
|
67
58
|
:uid => auth['uid']).first || User.create_with_omniauth(auth)
|
68
59
|
session[:user_id] = user.id
|
69
|
-
|
70
|
-
redirect_to edit_user_path(user), :alert => "Please enter your email address."
|
71
|
-
else
|
72
|
-
redirect_to root_url, :notice => 'Signed in!'
|
73
|
-
end
|
60
|
+
redirect_to root_url, :notice => 'Signed in!'
|
74
61
|
end
|
75
|
-
|
62
|
+
|
76
63
|
def destroy
|
77
64
|
session[:user_id] = nil
|
78
65
|
redirect_to root_url, :notice => 'Signed out!'
|
79
66
|
end
|
80
|
-
|
67
|
+
|
81
68
|
def failure
|
82
69
|
redirect_to root_url, :alert => "Authentication error: #{params[:message].humanize}"
|
83
70
|
end
|
84
|
-
|
71
|
+
|
85
72
|
end
|
86
73
|
RUBY
|
87
|
-
|
74
|
+
end
|
75
|
+
|
76
|
+
# Don't use single-quote-style-heredoc: we want interpolation.
|
77
|
+
inject_into_class 'app/controllers/sessions_controller.rb', 'SessionsController' do <<-RUBY
|
78
|
+
|
79
|
+
def new
|
80
|
+
redirect_to '/auth/#{config['provider']}'
|
81
|
+
end
|
82
|
+
|
83
|
+
RUBY
|
84
|
+
end
|
88
85
|
|
89
|
-
|
86
|
+
inject_into_file 'app/controllers/application_controller.rb', :before => 'end' do <<-RUBY
|
90
87
|
helper_method :current_user
|
91
88
|
helper_method :user_signed_in?
|
92
89
|
helper_method :correct_user?
|
@@ -116,8 +113,9 @@ RUBY
|
|
116
113
|
redirect_to root_url, :alert => 'You need to sign in for access to this page.'
|
117
114
|
end
|
118
115
|
end
|
116
|
+
|
119
117
|
RUBY
|
120
|
-
|
118
|
+
end
|
121
119
|
|
122
120
|
end
|
123
121
|
end
|
data/recipes/omniauth_email.rb
CHANGED
@@ -9,11 +9,11 @@ after_bundler do
|
|
9
9
|
# Modify a users controller
|
10
10
|
#----------------------------------------------------------------------------
|
11
11
|
inject_into_file 'app/controllers/users_controller.rb', :after => "before_filter :authenticate_user!\n" do <<-RUBY
|
12
|
-
before_filter :correct_user
|
12
|
+
before_filter :correct_user?
|
13
13
|
RUBY
|
14
14
|
end
|
15
15
|
|
16
|
-
inject_into_file 'app/controllers/users_controller.rb', :before => '
|
16
|
+
inject_into_file 'app/controllers/users_controller.rb', :before => 'def show' do <<-RUBY
|
17
17
|
def edit
|
18
18
|
@user = User.find(params[:id])
|
19
19
|
end
|
@@ -26,6 +26,7 @@ RUBY
|
|
26
26
|
render :edit
|
27
27
|
end
|
28
28
|
end
|
29
|
+
\n
|
29
30
|
RUBY
|
30
31
|
end
|
31
32
|
|
@@ -62,10 +63,10 @@ ERB
|
|
62
63
|
gsub_file 'app/controllers/sessions_controller.rb', /redirect_to root_url, :notice => 'Signed in!'/ do
|
63
64
|
<<-RUBY
|
64
65
|
if !user.email
|
65
|
-
|
66
|
-
else
|
67
|
-
|
68
|
-
end
|
66
|
+
redirect_to edit_user_path(user), :alert => "Please enter your email address."
|
67
|
+
else
|
68
|
+
redirect_to root_url, :notice => 'Signed in!'
|
69
|
+
end
|
69
70
|
RUBY
|
70
71
|
end
|
71
72
|
|
data/recipes/rspec.rb
CHANGED
@@ -25,16 +25,28 @@ if config['rspec']
|
|
25
25
|
after_bundler do
|
26
26
|
say_wizard "RSpec recipe running 'after bundler'"
|
27
27
|
generate 'rspec:install'
|
28
|
-
|
28
|
+
|
29
29
|
say_wizard "Removing test folder (not needed for RSpec)"
|
30
30
|
run 'rm -rf test/'
|
31
31
|
|
32
|
+
inject_into_file 'config/application.rb', :after => "Rails::Application\n" do <<-RUBY
|
33
|
+
|
34
|
+
# don't generate RSpec tests for views and helpers
|
35
|
+
config.generators do |g|
|
36
|
+
g.view_specs false
|
37
|
+
g.helper_specs false
|
38
|
+
end
|
39
|
+
|
40
|
+
RUBY
|
41
|
+
end
|
42
|
+
|
43
|
+
|
32
44
|
if recipes.include? 'mongoid'
|
33
|
-
|
45
|
+
|
34
46
|
# remove ActiveRecord artifacts
|
35
47
|
gsub_file 'spec/spec_helper.rb', /config.fixture_path/, '# config.fixture_path'
|
36
48
|
gsub_file 'spec/spec_helper.rb', /config.use_transactional_fixtures/, '# config.use_transactional_fixtures'
|
37
|
-
|
49
|
+
|
38
50
|
# reset your application database to a pristine state during testing
|
39
51
|
inject_into_file 'spec/spec_helper.rb', :before => "\nend" do
|
40
52
|
<<-RUBY
|
data/templates/layout.erb
CHANGED
@@ -20,11 +20,28 @@ Rails.application.config.generators do |g|
|
|
20
20
|
end
|
21
21
|
RUBY
|
22
22
|
|
23
|
-
@recipes = <%= resolve_recipes.map(&:key).inspect %>
|
23
|
+
@recipes = <%= resolve_recipes.map(&:key).inspect %>
|
24
24
|
|
25
25
|
<%= render "helpers" %>
|
26
26
|
|
27
|
+
case Rails::VERSION::MAJOR.to_s
|
28
|
+
when "3"
|
29
|
+
case Rails::VERSION::MINOR.to_s
|
30
|
+
when "1"
|
31
|
+
say_wizard "You are using Rails version #{Rails::VERSION::STRING}."
|
32
|
+
@recipes << 'rails 3.1'
|
33
|
+
when "0"
|
34
|
+
say_wizard "You are using Rails version #{Rails::VERSION::STRING}."
|
35
|
+
@recipes << 'rails 3.0'
|
36
|
+
else
|
37
|
+
say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported."
|
38
|
+
end
|
39
|
+
else
|
40
|
+
say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported."
|
41
|
+
end
|
42
|
+
|
27
43
|
say_wizard "Checking configuration. Please confirm your preferences."
|
44
|
+
|
28
45
|
<% resolve_recipes.each do |recipe| %>
|
29
46
|
<%= render 'recipe', recipe.get_binding %>
|
30
47
|
<% end %>
|
@@ -49,4 +66,4 @@ say_wizard "Running 'after everything' callbacks."
|
|
49
66
|
@current_recipe = nil
|
50
67
|
say_wizard "Finished running the rails3_devise_wizard app template."
|
51
68
|
say_wizard "Your new Rails app is ready. Any problems?"
|
52
|
-
say_wizard "See http://github.com/fortuity/
|
69
|
+
say_wizard "See http://github.com/fortuity/rails3_devise_wizard/issues"
|
data/version.rb
CHANGED
metadata
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
name: rails3_devise_wizard
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.
|
5
|
+
version: 0.3.1
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Daniel Kehoe
|
@@ -10,7 +10,7 @@ autorequire:
|
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
12
|
|
13
|
-
date: 2011-05-
|
13
|
+
date: 2011-05-13 00:00:00 Z
|
14
14
|
dependencies:
|
15
15
|
- !ruby/object:Gem::Dependency
|
16
16
|
name: i18n
|
@@ -175,7 +175,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
175
175
|
requirements:
|
176
176
|
- - ">="
|
177
177
|
- !ruby/object:Gem::Version
|
178
|
-
hash:
|
178
|
+
hash: 2176637839049336499
|
179
179
|
segments:
|
180
180
|
- 0
|
181
181
|
version: "0"
|
@@ -184,7 +184,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
184
184
|
requirements:
|
185
185
|
- - ">="
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
hash:
|
187
|
+
hash: 2176637839049336499
|
188
188
|
segments:
|
189
189
|
- 0
|
190
190
|
version: "0"
|