rails_apps_composer 1.1.4 → 1.1.5

Sign up to get free protection for your applications and to get access to all the features.
@@ -2,24 +2,34 @@
2
2
  # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/action_mailer.rb
3
3
 
4
4
  after_bundler do
5
+ ### modifying environment configuration files for ActionMailer
5
6
  say_wizard "ActionMailer recipe running 'after bundler'"
6
- # modifying environment configuration files for ActionMailer
7
+ ### development environment
7
8
  gsub_file 'config/environments/development.rb', /# Don't care if the mailer can't send/, '# ActionMailer Config'
8
9
  gsub_file 'config/environments/development.rb', /config.action_mailer.raise_delivery_errors = false/ do
9
10
  <<-RUBY
10
11
  config.action_mailer.default_url_options = { :host => 'localhost:3000' }
11
- # A dummy setup for development - no deliveries, but logged
12
12
  config.action_mailer.delivery_method = :smtp
13
- config.action_mailer.perform_deliveries = false
13
+ # change to false to prevent email from being sent during development
14
+ config.action_mailer.perform_deliveries = true
14
15
  config.action_mailer.raise_delivery_errors = true
15
16
  config.action_mailer.default :charset => "utf-8"
16
17
  RUBY
17
18
  end
19
+ ### test environment
20
+ inject_into_file 'config/environments/test.rb', :before => "\nend" do
21
+ <<-RUBY
22
+ \n
23
+ # ActionMailer Config
24
+ config.action_mailer.default_url_options = { :host => 'example.com' }
25
+ RUBY
26
+ end
27
+ ### production environment
18
28
  gsub_file 'config/environments/production.rb', /config.active_support.deprecation = :notify/ do
19
29
  <<-RUBY
20
30
  config.active_support.deprecation = :notify
21
31
 
22
- config.action_mailer.default_url_options = { :host => 'yourhost.com' }
32
+ config.action_mailer.default_url_options = { :host => 'example.com' }
23
33
  # ActionMailer Config
24
34
  # Setup for production - deliveries, no errors raised
25
35
  config.action_mailer.delivery_method = :smtp
@@ -28,6 +38,25 @@ config.active_support.deprecation = :notify
28
38
  config.action_mailer.default :charset => "utf-8"
29
39
  RUBY
30
40
  end
41
+
42
+ ### modifying environment configuration files to send email using a GMail account
43
+ if config['gmail']
44
+ gmail_configuration_text = <<-TEXT
45
+ \n
46
+ config.action_mailer.smtp_settings = {
47
+ address: "smtp.gmail.com",
48
+ port: 587,
49
+ domain: "example.com",
50
+ authentication: "plain",
51
+ enable_starttls_auto: true,
52
+ user_name: ENV["GMAIL_USERNAME"],
53
+ password: ENV["GMAIL_PASSWORD"]
54
+ }
55
+ TEXT
56
+ say_wizard gmail_configuration_text
57
+ inject_into_file 'config/environments/development.rb', gmail_configuration_text, :after => 'config.action_mailer.default :charset => "utf-8"'
58
+ inject_into_file 'config/environments/production.rb', gmail_configuration_text, :after => 'config.action_mailer.default :charset => "utf-8"'
59
+ end
31
60
 
32
61
  end
33
62
 
@@ -38,4 +67,9 @@ description: "Configure ActionMailer to show errors during development and suppr
38
67
  author: RailsApps
39
68
 
40
69
  category: other
41
- tags: [utilities, configuration]
70
+ tags: [utilities, configuration]
71
+
72
+ config:
73
+ - gmail:
74
+ type: boolean
75
+ prompt: Would you like the app to use a GMail account to send email?
data/recipes/add_user.rb CHANGED
@@ -16,12 +16,13 @@ RUBY
16
16
  end
17
17
 
18
18
  if recipes.include? 'devise'
19
-
19
+
20
20
  # Generate models and routes for a User
21
21
  generate 'devise user'
22
22
 
23
23
  # Add a 'name' attribute to the User model
24
24
  if recipes.include? 'mongoid'
25
+ # for mongoid
25
26
  gsub_file 'app/models/user.rb', /end/ do
26
27
  <<-RUBY
27
28
  field :name
@@ -35,6 +36,9 @@ RUBY
35
36
  # for ActiveRecord
36
37
  # Devise created a Users database, we'll modify it
37
38
  generate 'migration AddNameToUsers name:string'
39
+ if recipes.include? 'devise-confirmable'
40
+ generate 'migration AddConfirmableToUsers confirmation_token:string confirmed_at:datetime confirmation_sent_at:datetime unconfirmed_email:string'
41
+ end
38
42
  # Devise created a Users model, we'll modify it
39
43
  gsub_file 'app/models/user.rb', /attr_accessible :email/, 'attr_accessible :name, :email'
40
44
  inject_into_file 'app/models/user.rb', :before => 'validates_uniqueness_of' do
@@ -43,8 +47,14 @@ RUBY
43
47
  gsub_file 'app/models/user.rb', /validates_uniqueness_of :email/, 'validates_uniqueness_of :name, :email'
44
48
  end
45
49
 
50
+ # needed for both mongoid and ActiveRecord
51
+ if recipes.include? 'devise-confirmable'
52
+ gsub_file 'app/models/user.rb', /:registerable,/, ":registerable, :confirmable,"
53
+ gsub_file 'app/models/user.rb', /:remember_me/, ':remember_me, :confirmed_at'
54
+ end
55
+
46
56
  unless recipes.include? 'haml'
47
-
57
+
48
58
  # Generate Devise views (unless you are using Haml)
49
59
  run 'rails generate devise:views'
50
60
 
data/recipes/cucumber.rb CHANGED
@@ -14,6 +14,8 @@ if config['cucumber']
14
14
  after_bundler do
15
15
  say_wizard "Cucumber recipe running 'after bundler'"
16
16
  generate "cucumber:install --capybara#{' --rspec' if recipes.include?('rspec')}#{' -D' if recipes.include?('mongoid')}"
17
+ # make it easy to run Cucumber for single features without adding "--require features" to the command line
18
+ gsub_file 'config/cucumber.yml', /std_opts = "/, 'std_opts = "-r features/support/ -r features/step_definitions '
17
19
  if recipes.include? 'mongoid'
18
20
  gsub_file 'features/support/env.rb', /transaction/, "truncation"
19
21
  inject_into_file 'features/support/env.rb', :after => 'begin' do
@@ -37,10 +39,23 @@ if config['cucumber']
37
39
  get 'https://raw.github.com/RailsApps/rails3-devise-rspec-cucumber/master/features/step_definitions/user_steps.rb', 'features/step_definitions/user_steps.rb'
38
40
  remove_file 'features/support/paths.rb'
39
41
  get 'https://raw.github.com/RailsApps/rails3-devise-rspec-cucumber/master/features/support/paths.rb', 'features/support/paths.rb'
42
+ if recipes.include? 'devise-confirmable'
43
+ gsub_file 'features/step_definitions/user_steps.rb', /Welcome! You have signed up successfully./, "A message with a confirmation link has been sent to your email address."
44
+ inject_into_file 'features/users/sign_in.feature', :before => ' Scenario: User signs in successfully' do
45
+ <<-RUBY
46
+ Scenario: User has not confirmed account
47
+ Given I exist as an unconfirmed user
48
+ And I am not logged in
49
+ When I sign in with valid credentials
50
+ Then I see an unconfirmed account message
51
+ And I should be signed out
52
+ RUBY
53
+ end
54
+ end
40
55
  rescue OpenURI::HTTPError
41
56
  say_wizard "Unable to obtain Cucumber example files from the repo"
42
57
  end
43
- end
58
+ end
44
59
  end
45
60
  end
46
61
 
data/recipes/devise.rb CHANGED
@@ -1,19 +1,33 @@
1
1
  # Application template recipe for the rails_apps_composer. Check for a newer version here:
2
2
  # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/devise.rb
3
3
 
4
- if config['devise']
5
- gem 'devise', '>= 2.0.4'
6
- else
7
- recipes.delete('devise')
4
+ case config['devise']
5
+ when 'no'
6
+ recipes.delete('devise')
7
+ say_wizard "Devise recipe skipped."
8
+ when 'standard'
9
+ gem 'devise', '>= 2.0.4'
10
+ when 'confirmable'
11
+ gem 'devise', '>= 2.0.4'
12
+ recipes << 'devise-confirmable'
13
+ when 'invitable'
14
+ gem 'devise', '>= 2.0.4'
15
+ gem 'devise_invitable', '>= 1.0.0'
16
+ recipes << 'devise-confirmable'
17
+ recipes << 'devise-invitable'
18
+ else
19
+ recipes.delete('devise')
20
+ say_wizard "Devise recipe skipped."
8
21
  end
9
22
 
10
- if config['devise']
23
+ if recipes.include? 'devise'
11
24
  after_bundler do
12
-
25
+
13
26
  say_wizard "Devise recipe running 'after bundler'"
14
-
27
+
15
28
  # Run the Devise generator
16
29
  generate 'devise:install'
30
+ generate 'devise_invitable:install' if recipes.include? 'devise-invitable'
17
31
 
18
32
  if recipes.include? 'mongo_mapper'
19
33
  gem 'mm-devise'
@@ -32,7 +46,7 @@ if config['devise']
32
46
  # (see https://github.com/RailsApps/rails3-devise-rspec-cucumber/issues/3)
33
47
  gsub_file 'config/initializers/devise.rb', 'config.sign_out_via = :delete', 'config.sign_out_via = Rails.env.test? ? :get : :delete'
34
48
  end
35
-
49
+
36
50
  end
37
51
 
38
52
  after_everything do
@@ -75,5 +89,6 @@ exclusive: authentication
75
89
 
76
90
  config:
77
91
  - devise:
78
- type: boolean
79
- prompt: Would you like to use Devise for authentication?
92
+ type: multiple_choice
93
+ prompt: Would you like to use Devise for authentication?
94
+ choices: [["No", no], ["Devise with default modules", standard], ["Devise with Confirmable module", confirmable], ["Devise with Confirmable and Invitable modules", invitable]]
data/recipes/extras.rb CHANGED
@@ -31,7 +31,7 @@ tags: [utilities, configuration]
31
31
  config:
32
32
  - footnotes:
33
33
  type: boolean
34
- prompt: Would you like to use 'rails-footnotes' (it's SLOW!')?
34
+ prompt: Would you like to use 'rails-footnotes' (it's SLOW!)?
35
35
  - ban_spiders:
36
36
  type: boolean
37
37
  prompt: Would you like to set a robots.txt file to ban spiders?
data/recipes/guard.rb CHANGED
@@ -1,4 +1,18 @@
1
- if config['guard']
1
+ case config['guard']
2
+ when 'no'
3
+ recipes.delete('guard')
4
+ say_wizard "Guard recipe skipped."
5
+ when 'standard'
6
+ # do nothing
7
+ when 'LiveReload'
8
+ recipes << 'guard-LiveReload'
9
+ else
10
+ recipes.delete('guard')
11
+ say_wizard "Guard recipe skipped."
12
+ end
13
+
14
+
15
+ if recipes.include? 'guard'
2
16
  gem 'guard', '>= 0.6.2', :group => :development
3
17
 
4
18
  prepend_file 'Gemfile' do <<-RUBY
@@ -44,8 +58,8 @@ end
44
58
  unless recipes.include? 'pow'
45
59
  guard 'rails', '>= 0.0.3'
46
60
  end
47
-
48
- if config['livereload']
61
+
62
+ if recipes.include? 'guard-LiveReload'
49
63
  guard 'livereload', '>= 0.3.0'
50
64
  end
51
65
 
@@ -80,8 +94,6 @@ tags: [dev]
80
94
 
81
95
  config:
82
96
  - guard:
83
- type: boolean
97
+ type: multiple_choice
84
98
  prompt: Would you like to use Guard to automate your workflow?
85
- - livereload:
86
- type: boolean
87
- prompt: Would you like to enable the LiveReload guard?
99
+ choices: [["No", no], ["Guard default configuration", standard], ["Guard with LiveReload", LiveReload]]
@@ -6,10 +6,18 @@ after_bundler do
6
6
 
7
7
  say_wizard "SeedDatabase recipe running 'after bundler'"
8
8
 
9
- unless recipes.include? 'mongoid'
10
- run 'bundle exec rake db:migrate'
11
- end
9
+ run 'bundle exec rake db:migrate' unless recipes.include? 'mongoid'
12
10
 
11
+ if recipes.include? 'devise-invitable'
12
+ generate 'devise_invitable user'
13
+ unless recipes.include? 'mongoid'
14
+ run 'bundle exec rake db:migrate'
15
+ end
16
+ end
17
+
18
+ # clone the schema changes to the test database
19
+ run 'bundle exec rake db:test:prepare' unless recipes.include? 'mongoid'
20
+
13
21
  if recipes.include? 'mongoid'
14
22
  append_file 'db/seeds.rb' do <<-FILE
15
23
  puts 'EMPTY THE MONGODB DATABASE'
@@ -26,6 +34,9 @@ user = User.create! :name => 'First User', :email => 'user@example.com', :passwo
26
34
  puts 'New user created: ' << user.name
27
35
  FILE
28
36
  end
37
+ if recipes.include? 'devise-confirmable'
38
+ gsub_file 'db/seeds.rb', /:password_confirmation => 'please'/, ":password_confirmation => 'please', :confirmed_at => DateTime.now"
39
+ end
29
40
  end
30
41
 
31
42
  run 'bundle exec rake db:seed'
data/recipes/slim.rb ADDED
@@ -0,0 +1,46 @@
1
+ # Application template recipe for the rails_apps_composer. Check for a newer version here:
2
+ # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/slim.rb
3
+
4
+ if config['slim']
5
+ gem 'slim', '~> 1.0'
6
+ gem 'slim-rails', '~> 1.0.3', :group => :development
7
+ else
8
+ recipes.delete('slim')
9
+ end
10
+
11
+ after_bundler do
12
+
13
+ say_wizard "Slim recipe running 'after bundler'"
14
+
15
+ remove_file 'app/views/layouts/application.html.erb'
16
+ # There is Slim code in this script. Changing the indentation is perilous between SLIMs.
17
+ # We have to use single-quote-style-heredoc to avoid interpolation.
18
+ create_file 'app/views/layouts/application.html.slim' do
19
+ <<-'SLIM'
20
+ doctype html
21
+ html
22
+ head
23
+ title App_Name
24
+ = stylesheet_link_tag "application", :media => "all"
25
+ = javascript_include_tag "application"
26
+ = csrf_meta_tags
27
+ body
28
+ = yield
29
+ SLIM
30
+ end
31
+
32
+ end
33
+
34
+ __END__
35
+
36
+ name: SLIM
37
+ description: "Utilize Slim instead of ERB."
38
+ author: claudiob
39
+
40
+ category: templating
41
+ exclusive: templating
42
+
43
+ config:
44
+ - slim:
45
+ type: boolean
46
+ prompt: Would you like to use Slim instead of ERB?
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RailsWizard
2
- VERSION = "1.1.4"
2
+ VERSION = "1.1.5"
3
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.1.4
4
+ version: 1.1.5
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-02-21 00:00:00.000000000 Z
12
+ date: 2012-02-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n
16
- requirement: &2153452360 !ruby/object:Gem::Requirement
16
+ requirement: &2153449780 !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: *2153452360
24
+ version_requirements: *2153449780
25
25
  - !ruby/object:Gem::Dependency
26
26
  name: activesupport
27
- requirement: &2153451860 !ruby/object:Gem::Requirement
27
+ requirement: &2153449280 !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: *2153451860
35
+ version_requirements: *2153449280
36
36
  - !ruby/object:Gem::Dependency
37
37
  name: thor
38
- requirement: &2153451420 !ruby/object:Gem::Requirement
38
+ requirement: &2153448840 !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: *2153451420
46
+ version_requirements: *2153448840
47
47
  - !ruby/object:Gem::Dependency
48
48
  name: rake
49
- requirement: &2153445040 !ruby/object:Gem::Requirement
49
+ requirement: &2153442660 !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: *2153445040
57
+ version_requirements: *2153442660
58
58
  - !ruby/object:Gem::Dependency
59
59
  name: rspec
60
- requirement: &2153444120 !ruby/object:Gem::Requirement
60
+ requirement: &2153441660 !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: *2153444120
68
+ version_requirements: *2153441660
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: mg
71
- requirement: &2153443640 !ruby/object:Gem::Requirement
71
+ requirement: &2153441100 !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: *2153443640
79
+ version_requirements: *2153441100
80
80
  - !ruby/object:Gem::Dependency
81
81
  name: activesupport
82
- requirement: &2153443020 !ruby/object:Gem::Requirement
82
+ requirement: &2153440480 !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: *2153443020
90
+ version_requirements: *2153440480
91
91
  - !ruby/object:Gem::Dependency
92
92
  name: i18n
93
- requirement: &2153442580 !ruby/object:Gem::Requirement
93
+ requirement: &2153440000 !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: *2153442580
101
+ version_requirements: *2153440000
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:
@@ -117,7 +117,6 @@ files:
117
117
  - recipes/action_mailer.rb
118
118
  - recipes/activerecord.rb
119
119
  - recipes/add_user.rb
120
- - recipes/add_user_name.rb
121
120
  - recipes/backbone.rb
122
121
  - recipes/capybara.rb
123
122
  - recipes/cleanup.rb
@@ -146,6 +145,7 @@ files:
146
145
  - recipes/sass.rb
147
146
  - recipes/seed_database.rb
148
147
  - recipes/settingslogic.rb
148
+ - recipes/slim.rb
149
149
  - recipes/static_page.rb
150
150
  - recipes/subdomains.rb
151
151
  - recipes/users_page.rb
@@ -177,7 +177,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
177
177
  version: '0'
178
178
  segments:
179
179
  - 0
180
- hash: -296281873627755072
180
+ hash: 4313263859797521047
181
181
  required_rubygems_version: !ruby/object:Gem::Requirement
182
182
  none: false
183
183
  requirements:
@@ -186,7 +186,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
186
186
  version: '0'
187
187
  segments:
188
188
  - 0
189
- hash: -296281873627755072
189
+ hash: 4313263859797521047
190
190
  requirements: []
191
191
  rubyforge_project: rails_apps_composer
192
192
  rubygems_version: 1.8.16
@@ -1,77 +0,0 @@
1
- # Application template recipe for the rails_apps_composer. Check for a newer version here:
2
- # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/add_user_name.rb
3
-
4
- after_bundler do
5
-
6
- say_wizard "AddUserName recipe running 'after bundler'"
7
-
8
- # Add a 'name' attribute to the User model
9
- if recipes.include? 'mongoid'
10
- gsub_file 'app/models/user.rb', /end/ do
11
- <<-RUBY
12
- field :name
13
- validates_presence_of :name
14
- validates_uniqueness_of :name, :email, :case_sensitive => false
15
- attr_accessible :name, :email, :password, :password_confirmation, :remember_me
16
- end
17
- RUBY
18
- end
19
- else
20
- # for ActiveRecord
21
- # Devise created a Users database, we'll modify it
22
- generate 'migration AddNameToUsers name:string'
23
- # Devise created a Users model, we'll modify it
24
- gsub_file 'app/models/user.rb', /attr_accessible :email/, 'attr_accessible :name, :email'
25
- inject_into_file 'app/models/user.rb', :before => 'validates_uniqueness_of' do
26
- "validates_presence_of :name\n"
27
- end
28
- gsub_file 'app/models/user.rb', /validates_uniqueness_of :email/, 'validates_uniqueness_of :name, :email'
29
- end
30
-
31
- if recipes.include? 'devise'
32
- unless recipes.include? 'haml'
33
-
34
- # Generate Devise views (unless you are using Haml)
35
- run 'rails generate devise:views'
36
-
37
- # Modify Devise views to add 'name'
38
- inject_into_file "app/views/devise/registrations/edit.html.erb", :after => "<%= devise_error_messages! %>\n" do
39
- <<-ERB
40
- <p><%= f.label :name %><br />
41
- <%= f.text_field :name %></p>
42
- ERB
43
- end
44
-
45
- inject_into_file "app/views/devise/registrations/new.html.erb", :after => "<%= devise_error_messages! %>\n" do
46
- <<-ERB
47
- <p><%= f.label :name %><br />
48
- <%= f.text_field :name %></p>
49
- ERB
50
- end
51
-
52
- else
53
-
54
- # copy Haml versions of modified Devise views
55
- inside 'app/views/devise' do
56
- get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/rails3-mongoid-devise/app/views/devise/_links.erb', '_links.erb'
57
- end
58
- inside 'app/views/devise/registrations' do
59
- get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/rails3-mongoid-devise/app/views/devise/registrations/edit.html.haml', 'edit.html.haml'
60
- get 'https://raw.github.com/RailsApps/rails3-application-templates/master/files/rails3-mongoid-devise/app/views/devise/registrations/new.html.haml', 'new.html.haml'
61
- end
62
-
63
- end
64
-
65
- end
66
-
67
- end
68
-
69
- __END__
70
-
71
- name: AddUserName
72
- description: "Modify the default Devise configuration to add a 'name' attribute for all users."
73
- author: RailsApps
74
-
75
- requires: [devise]
76
- category: other
77
- tags: [utilities, configuration]