rails_apps_composer 2.1.2 → 2.1.3

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/README.textile CHANGED
@@ -72,8 +72,14 @@ Before using the rails_apps_composer gem, you will need:
72
72
  * The Ruby language (version 1.9.3)
73
73
  * Rails 3.1 or newer
74
74
 
75
+ The rails_apps_composer program uses the version of Rails that is currently installed when you launch the program. If you want to use the newest Rails version, upgrade before running rails_apps_composer.
76
+
75
77
  See the article "Installing Rails":http://railsapps.github.com/installing-rails.html for advice about updating Rails and your development environment.
76
78
 
79
+ h4. Database
80
+
81
+ Except for SQLite, which runs by default on Mac OS X, you'll need to have a database server running before you run rails_apps_composer. This is true if you use PostgreSQL, MySQL, or MongoDB; use SQLite if you don't want to set up a database server.
82
+
77
83
  h2. Installation
78
84
 
79
85
  I recommend installing and using rvm, the "Ruby Version Manager":https://rvm.io/, to create a new gemset for rails_apps_composer. Using an rvm gemset will make it easier to identify and isolate incompatibilities among gems.
@@ -93,15 +99,16 @@ You can list recipes with short descriptions:
93
99
  <pre>
94
100
  $ rails_apps_composer list
95
101
 
102
+ all # Select all available recipes.
96
103
  auth # Add authentication and authorization.
97
104
  controllers # Add controllers needed for starter apps.
98
- database # Set up and initialize database.
99
105
  email # Configure email accounts.
100
- example # Example of a recipe
106
+ example # Example of a recipe.
101
107
  extras # Various extras.
102
108
  frontend # Install a front-end framework for HTML5 and CSS.
103
109
  gems # Add the gems your application needs.
104
110
  git # Initialize git for your application.
111
+ init # Set up and initialize database.
105
112
  models # Add models needed for starter apps.
106
113
  railsapps # Install RailsApps example applications.
107
114
  readme # Build a README file for your application.
@@ -160,11 +167,12 @@ Would you like to skip Test::Unit? (yes for RSpec) (y/n)
160
167
  Would you like to skip Active Record? (yes for MongoDB) (y/n)
161
168
 
162
169
  Available Recipes:
170
+ all: all
163
171
  auth: auth
164
172
  configuration: email, gems, git, railsapps, readme, setup
165
173
  example: example
166
174
  frontend: frontend
167
- initialize: database
175
+ initialize: init
168
176
  mvc: controllers, models, routes, views
169
177
  other: extras
170
178
  testing: testing
@@ -182,10 +190,10 @@ You can specify any gem. Any string you enter will be added as a gem in the star
182
190
 
183
191
  h3. Generate an Application from a List of Recipes
184
192
 
185
- Provide a list of recipes using the @-r@ flag:
193
+ Provide a list of recipes using the @-r@ flag. The "all" recipe selects all available recipes:
186
194
 
187
195
  <pre>
188
- $ rails_apps_composer new myapp -r git setup readme gems testing auth email models controllers views routes frontend database extras
196
+ $ rails_apps_composer new myapp -r all
189
197
 
190
198
  Would you like to skip Test::Unit? (yes for RSpec) (y/n)
191
199
  Would you like to skip Active Record? (yes for MongoDB) (y/n)
@@ -217,11 +225,12 @@ Specify a filename for the template:
217
225
  $ rails_apps_composer template ~/Desktop/template.rb
218
226
 
219
227
  Available Recipes:
228
+ all: all
220
229
  auth: auth
221
230
  configuration: email, gems, git, railsapps, readme, setup
222
231
  example: example
223
232
  frontend: frontend
224
- initialize: database
233
+ initialize: init
225
234
  mvc: controllers, models, routes, views
226
235
  other: extras
227
236
  testing: testing
@@ -239,7 +248,7 @@ h3. Generate an Application Template from a List of Recipes
239
248
  Specify a filename for the template and provide a list of recipes:
240
249
 
241
250
  <pre>
242
- $ rails_apps_composer template ~/Desktop/template.rb -r git setup readme gems testing auth email models controllers views routes frontend database extras
251
+ $ rails_apps_composer template ~/Desktop/template.rb -r all
243
252
 
244
253
  What gem would you like to add? (blank to finish)
245
254
  Generating and saving application template...
@@ -15,8 +15,11 @@ module RailsWizard
15
15
  @@recipes << %w(gems git setup)
16
16
  @@recipes << %w(gems git readme setup)
17
17
  @@recipes << %w(extras gems git readme setup)
18
- @@recipes << %w(auth controllers database email extras frontend gems git models railsapps readme routes setup testing views)
19
- @@recipes << %w(auth controllers database email example extras frontend gems git models railsapps readme routes setup testing views)
18
+ @@recipes << %w(auth controllers email extras frontend gems git init models railsapps readme routes setup testing views)
19
+ @@recipes << %w(all auth controllers email extras frontend gems git init models railsapps readme routes setup testing views)
20
+ @@recipes << %w(auth controllers email example extras frontend gems git init models railsapps readme routes setup testing views)
21
+ @@recipes << %w(auth controllers email example extras frontend gems git init models prelaunch railsapps readme routes setup testing views)
22
+ @@recipes << %w(all auth controllers email example extras frontend gems git init models prelaunch railsapps readme routes setup testing views)
20
23
 
21
24
  ### collections of preferences that are known to work together
22
25
  @@prefs = []
data/recipes/all.rb ADDED
@@ -0,0 +1,14 @@
1
+ # Application template recipe for the rails_apps_composer. Change the recipe here:
2
+ # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/all.rb
3
+
4
+ ## Git
5
+ say_wizard "selected all recipes"
6
+
7
+ __END__
8
+
9
+ name: all
10
+ description: "Select all available recipes."
11
+ author: RailsApps
12
+
13
+ requires: [git, railsapps, setup, readme, gems, testing, auth, email, models, controllers, views, routes, frontend, init, extras]
14
+ category: all
data/recipes/example.rb CHANGED
@@ -45,7 +45,7 @@ end
45
45
  __END__
46
46
 
47
47
  name: example
48
- description: "Example of a recipe"
48
+ description: "Example of a recipe."
49
49
  author: githubname
50
50
 
51
51
  category: example
data/recipes/extras.rb CHANGED
@@ -69,7 +69,7 @@ if prefs[:rvmrc]
69
69
  begin
70
70
  RVM.gemset_use! app_name
71
71
  rescue StandardError
72
- raise "Use rvm gem 1.11.3.5 or newer."
72
+ raise "rvm failure: unable to use gemset #{app_name}"
73
73
  end
74
74
  run "rvm gemset list"
75
75
  copy_from_repo '.rvmrc'
@@ -92,7 +92,7 @@ after_everything do
92
92
  gsub_file 'config/routes.rb', /\n^\s*\n/, "\n"
93
93
  # GIT
94
94
  git :add => '.' if prefer :git, true
95
- git :commit => "-aqm 'rails_apps_composer: starter app complete'" if prefer :git, true
95
+ git :commit => "-aqm 'rails_apps_composer: extras'" if prefer :git, true
96
96
  end
97
97
 
98
98
  __END__
@@ -102,7 +102,7 @@ description: "Various extras."
102
102
  author: RailsApps
103
103
 
104
104
  requires: [gems]
105
- run_after: [gems]
105
+ run_after: [init, gems]
106
106
  category: other
107
107
 
108
108
  config:
data/recipes/frontend.rb CHANGED
@@ -36,12 +36,12 @@ RUBY
36
36
  insert_into_file 'app/assets/javascripts/application.js', "//= require foundation\n", :after => "jquery_ujs\n"
37
37
  insert_into_file 'app/assets/stylesheets/application.css.scss', " *= require foundation\n", :after => "require_self\n"
38
38
  elsif prefer :frontend, 'skeleton'
39
- copy_from_repo 'app/assets/stylesheets/normalize.css.scss', :repo => 'https://raw.github.com/necolas/normalize.css/master/normalize.css'
40
- copy_from_repo 'app/assets/stylesheets/base.css.scss', :repo => 'https://raw.github.com/dhgamache/Skeleton/master/stylesheets/base.css'
41
- copy_from_repo 'app/assets/stylesheets/layout.css.scss', :repo => 'https://raw.github.com/dhgamache/Skeleton/master/stylesheets/layout.css'
42
- copy_from_repo 'app/assets/stylesheets/skeleton.css.scss', :repo => 'https://raw.github.com/dhgamache/Skeleton/master/stylesheets/skeleton.css'
39
+ copy_from 'https://raw.github.com/necolas/normalize.css/master/normalize.css', 'app/assets/stylesheets/normalize.css'
40
+ copy_from 'https://raw.github.com/dhgamache/Skeleton/master/stylesheets/base.css', 'app/assets/stylesheets/base.css'
41
+ copy_from 'https://raw.github.com/dhgamache/Skeleton/master/stylesheets/layout.css', 'app/assets/stylesheets/layout.css'
42
+ copy_from 'https://raw.github.com/dhgamache/Skeleton/master/stylesheets/skeleton.css', 'app/assets/stylesheets/skeleton.css'
43
43
  elsif prefer :frontend, 'normalize'
44
- copy_from_repo 'app/assets/stylesheets/normalize.css.scss', :repo => 'https://raw.github.com/necolas/normalize.css/master/normalize.css'
44
+ copy_from 'https://raw.github.com/necolas/normalize.css/master/normalize.css', 'app/assets/stylesheets/normalize.css'
45
45
  end
46
46
  ### GIT ###
47
47
  git :add => '.' if prefer :git, true
data/recipes/gems.rb CHANGED
@@ -15,6 +15,7 @@ gem 'unicorn', '>= 4.3.1', :group => :production if prefer :prod_webserver, 'uni
15
15
  gem 'puma', '>= 1.6.1', :group => :production if prefer :prod_webserver, 'puma'
16
16
 
17
17
  ## Database Adapter
18
+ gsub_file 'Gemfile', /gem 'sqlite3'\n/, '' unless prefer :database, 'sqlite'
18
19
  gem 'mongoid', '>= 3.0.3' if prefer :orm, 'mongoid'
19
20
  gem 'pg', '>= 0.14.0' if prefer :database, 'postgresql'
20
21
  gem 'mysql2', '>= 0.3.11' if prefer :database, 'mysql'
data/recipes/git.rb CHANGED
@@ -5,12 +5,7 @@
5
5
  say_wizard "initialize git"
6
6
  prefs[:git] = true unless prefs.has_key? :git
7
7
  if prefer :git, true
8
- begin
9
- remove_file '.gitignore'
10
- get 'https://raw.github.com/RailsApps/rails-composer/master/files/gitignore.txt', '.gitignore'
11
- rescue OpenURI::HTTPError
12
- say_wizard "Unable to obtain gitignore file from the repo"
13
- end
8
+ copy_from 'https://raw.github.com/RailsApps/rails-composer/master/files/gitignore.txt', '.gitignore'
14
9
  git :init
15
10
  git :add => '.'
16
11
  git :commit => "-aqm 'rails_apps_composer: initial commit'"
@@ -1,5 +1,5 @@
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/database.rb
2
+ # https://github.com/RailsApps/rails_apps_composer/blob/master/recipes/init.rb
3
3
 
4
4
  after_everything do
5
5
  say_wizard "recipe running after everything"
@@ -62,7 +62,7 @@ end # after_everything
62
62
 
63
63
  __END__
64
64
 
65
- name: database
65
+ name: init
66
66
  description: "Set up and initialize database."
67
67
  author: RailsApps
68
68
 
data/recipes/prelaunch.rb CHANGED
@@ -37,9 +37,9 @@ end # signup_app
37
37
  __END__
38
38
 
39
39
  name: prelaunch
40
- description: "Generates a Prelaunch Signup App"
40
+ description: "Not implemented."
41
41
  author: RailsApps
42
42
 
43
- requires: [setup, gems, auth, models, controllers, views, frontend, database]
44
- run_after: [setup, gems, auth, models, controllers, views, frontend, database]
43
+ requires: [setup, gems, auth, models, controllers, views, frontend, init]
44
+ run_after: [setup, gems, auth, models, controllers, views, frontend, init]
45
45
  category: apps
data/recipes/railsapps.rb CHANGED
@@ -11,6 +11,7 @@ prefs[:railsapps] = multiple_choice "Install an example application?",
11
11
 
12
12
  case prefs[:railsapps]
13
13
  when 'rails3-bootstrap-devise-cancan'
14
+ prefs[:git] = true
14
15
  prefs[:database] = 'sqlite'
15
16
  prefs[:templates] = 'erb'
16
17
  prefs[:unit_test] = 'rspec'
@@ -25,6 +26,7 @@ case prefs[:railsapps]
25
26
  prefs[:starter_app] = 'admin_app'
26
27
  prefs[:form_builder] = 'none'
27
28
  when 'rails3-devise-rspec-cucumber'
29
+ prefs[:git] = true
28
30
  prefs[:database] = 'sqlite'
29
31
  prefs[:templates] = 'erb'
30
32
  prefs[:unit_test] = 'rspec'
@@ -38,6 +40,7 @@ case prefs[:railsapps]
38
40
  prefs[:starter_app] = 'users_app'
39
41
  prefs[:form_builder] = 'none'
40
42
  when 'rails3-mongoid-devise'
43
+ prefs[:git] = true
41
44
  prefs[:database] = 'mongodb'
42
45
  prefs[:orm] = 'mongoid'
43
46
  prefs[:templates] = 'erb'
@@ -52,6 +55,7 @@ case prefs[:railsapps]
52
55
  prefs[:starter_app] = 'users_app'
53
56
  prefs[:form_builder] = 'none'
54
57
  when 'rails3-mongoid-omniauth'
58
+ prefs[:git] = true
55
59
  prefs[:database] = 'mongodb'
56
60
  prefs[:orm] = 'mongoid'
57
61
  prefs[:templates] = 'erb'
@@ -66,6 +70,7 @@ case prefs[:railsapps]
66
70
  prefs[:starter_app] = 'users_app'
67
71
  prefs[:form_builder] = 'none'
68
72
  when 'rails3-subdomains'
73
+ prefs[:git] = true
69
74
  prefs[:database] = 'mongodb'
70
75
  prefs[:orm] = 'mongoid'
71
76
  prefs[:templates] = 'haml'
@@ -87,6 +92,6 @@ name: railsapps
87
92
  description: "Install RailsApps example applications."
88
93
  author: RailsApps
89
94
 
90
- requires: [auth, controllers, database, email, extras, frontend, gems, git, models, readme, routes, setup, testing, views]
95
+ requires: [auth, controllers, email, extras, frontend, gems, git, init, models, readme, routes, setup, testing, views]
91
96
  run_after: [git]
92
97
  category: configuration
data/recipes/readme.rb CHANGED
@@ -29,8 +29,10 @@ after_everything do
29
29
  # Ruby on Rails
30
30
  gsub_file "README.textile", /\* Ruby/, "* Ruby version #{RUBY_VERSION}"
31
31
  gsub_file "README.textile", /\* Rails/, "* Rails version #{Rails::VERSION::STRING}"
32
-
32
+
33
33
  # Database
34
+ gsub_file "README.textile", /SQLite/, "PostgreSQL" if prefer :database, 'postgresql'
35
+ gsub_file "README.textile", /SQLite/, "MySQL" if prefer :database, 'mysql'
34
36
  gsub_file "README.textile", /SQLite/, "MongoDB" if prefer :database, 'mongodb'
35
37
  gsub_file "README.textile", /ActiveRecord/, "the Mongoid ORM" if prefer :orm, 'mongoid'
36
38
 
data/recipes/testing.rb CHANGED
@@ -127,6 +127,21 @@ after_everything do
127
127
  remove_file 'spec/helpers/home_helper_spec.rb'
128
128
  remove_file 'spec/helpers/users_helper_spec.rb'
129
129
  end
130
+ if (prefer :authentication, 'devise') && (prefer :starter_app, 'admin_app')
131
+ say_wizard "copying RSpec files from the rails3-bootstrap-devise-cancan examples"
132
+ repo = 'https://raw.github.com/RailsApps/rails3-bootstrap-devise-cancan/master/'
133
+ copy_from_repo 'spec/factories/users.rb', :repo => repo
134
+ gsub_file 'spec/factories/users.rb', /# confirmed_at/, "confirmed_at" if (prefer :devise_modules, 'confirmable') || (prefer :devise_modules, 'invitable')
135
+ copy_from_repo 'spec/controllers/home_controller_spec.rb', :repo => repo
136
+ copy_from_repo 'spec/controllers/users_controller_spec.rb', :repo => repo
137
+ copy_from_repo 'spec/models/user_spec.rb', :repo => repo
138
+ remove_file 'spec/views/home/index.html.erb_spec.rb'
139
+ remove_file 'spec/views/home/index.html.haml_spec.rb'
140
+ remove_file 'spec/views/users/show.html.erb_spec.rb'
141
+ remove_file 'spec/views/users/show.html.haml_spec.rb'
142
+ remove_file 'spec/helpers/home_helper_spec.rb'
143
+ remove_file 'spec/helpers/users_helper_spec.rb'
144
+ end
130
145
  ## RSPEC AND OMNIAUTH
131
146
  if (prefer :authentication, 'omniauth') && (prefer :starter_app, 'users_app')
132
147
  say_wizard "copying RSpec files from the rails3-mongoid-omniauth examples"
@@ -166,6 +181,31 @@ after_everything do
166
181
  When I sign in with valid credentials
167
182
  Then I see an unconfirmed account message
168
183
  And I should be signed out
184
+ RUBY
185
+ end
186
+ end
187
+ end
188
+ if (prefer :authentication, 'devise') && (prefer :starter_app, 'admin_app')
189
+ say_wizard "copying Cucumber scenarios from the rails3-bootstrap-devise-cancan examples"
190
+ repo = 'https://raw.github.com/RailsApps/rails3-bootstrap-devise-cancan/master/'
191
+ copy_from_repo 'spec/controllers/home_controller_spec.rb', :repo => repo
192
+ copy_from_repo 'features/users/sign_in.feature', :repo => repo
193
+ copy_from_repo 'features/users/sign_out.feature', :repo => repo
194
+ copy_from_repo 'features/users/sign_up.feature', :repo => repo
195
+ copy_from_repo 'features/users/user_edit.feature', :repo => repo
196
+ copy_from_repo 'features/users/user_show.feature', :repo => repo
197
+ copy_from_repo 'features/step_definitions/user_steps.rb', :repo => repo
198
+ copy_from_repo 'features/support/paths.rb', :repo => repo
199
+ if (prefer :devise_modules, 'confirmable') || (prefer :devise_modules, 'invitable')
200
+ 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."
201
+ inject_into_file 'features/users/sign_in.feature', :before => ' Scenario: User signs in successfully' do
202
+ <<-RUBY
203
+ Scenario: User has not confirmed account
204
+ Given I exist as an unconfirmed user
205
+ And I am not logged in
206
+ When I sign in with valid credentials
207
+ Then I see an unconfirmed account message
208
+ And I should be signed out
169
209
  RUBY
170
210
  end
171
211
  end
@@ -49,6 +49,15 @@ def after_everything(&block); @after_everything_blocks << [@current_recipe, bloc
49
49
  @before_configs = {}
50
50
  def before_config(&block); @before_configs[@current_recipe] = block; end
51
51
 
52
+ def copy_from(source, destination)
53
+ begin
54
+ remove_file destination
55
+ get source, destination
56
+ rescue OpenURI::HTTPError
57
+ say_wizard "Unable to obtain #{source}"
58
+ end
59
+ end
60
+
52
61
  def copy_from_repo(filename, opts = {})
53
62
  repo = 'https://raw.github.com/RailsApps/rails-composer/master/files/'
54
63
  repo = opts[:repo] unless opts[:repo].nil?
data/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module RailsWizard
2
- VERSION = "2.1.2"
2
+ VERSION = "2.1.3"
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: 2.1.2
4
+ version: 2.1.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-08-12 00:00:00.000000000 Z
12
+ date: 2012-08-13 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: i18n
@@ -155,15 +155,16 @@ files:
155
155
  - lib/rails_wizard/recipes.rb
156
156
  - lib/rails_wizard/template.rb
157
157
  - lib/rails_wizard.rb
158
+ - recipes/all.rb
158
159
  - recipes/auth.rb
159
160
  - recipes/controllers.rb
160
- - recipes/database.rb
161
161
  - recipes/email.rb
162
162
  - recipes/example.rb
163
163
  - recipes/extras.rb
164
164
  - recipes/frontend.rb
165
165
  - recipes/gems.rb
166
166
  - recipes/git.rb
167
+ - recipes/init.rb
167
168
  - recipes/models.rb
168
169
  - recipes/prelaunch.rb
169
170
  - recipes/railsapps.rb
@@ -201,7 +202,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
201
202
  version: '0'
202
203
  segments:
203
204
  - 0
204
- hash: -3622496980535914871
205
+ hash: -1918959604150442453
205
206
  required_rubygems_version: !ruby/object:Gem::Requirement
206
207
  none: false
207
208
  requirements:
@@ -210,7 +211,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
210
211
  version: '0'
211
212
  segments:
212
213
  - 0
213
- hash: -3622496980535914871
214
+ hash: -1918959604150442453
214
215
  requirements: []
215
216
  rubyforge_project: rails_apps_composer
216
217
  rubygems_version: 1.8.24