rails_apps_composer 1.1.4 → 1.1.5

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.
@@ -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]