rails_apps_composer 2.0.1 → 2.1.0
Sign up to get free protection for your applications and to get access to all the features.
- data/README.textile +11 -3
- data/lib/rails_wizard/command.rb +10 -0
- data/lib/rails_wizard/recipes.rb +10 -0
- data/lib/rails_wizard.rb +1 -5
- data/recipes/gems.rb +10 -10
- data/recipes/models.rb +13 -11
- data/spec/rails_wizard/recipes_spec.rb +5 -0
- data/spec/test_recipes/test_recipe_in_file.rb +9 -0
- data/templates/layout.erb +5 -1
- data/version.rb +1 -1
- metadata +6 -4
data/README.textile
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
h1. !http://railsapps.github.com/images/rails-36x36.jpg(Rails Apps Composer Gem)! Rails Apps Composer 2.
|
1
|
+
h1. !http://railsapps.github.com/images/rails-36x36.jpg(Rails Apps Composer Gem)! Rails Apps Composer 2.1
|
2
2
|
|
3
3
|
The Rails Apps Composer gem installs a command line tool to assemble a Rails application from a collection of "recipes."
|
4
4
|
|
@@ -7,6 +7,8 @@ What you can do with the rails_apps_composer gem:
|
|
7
7
|
* create a starter app from the command line
|
8
8
|
* make a reusable application template
|
9
9
|
|
10
|
+
You can use local recipes as well as recipes supplied with the gem.
|
11
|
+
|
10
12
|
The "Rails Composer":http://railsapps.github.com/rails-composer/ tool is built with the rails_apps_composer gem. The Rails Composer tool creates the "example applications":http://railsapps.github.com/ for the "RailsApps":http://railsapps.github.com/ project.
|
11
13
|
|
12
14
|
The "Guide to the Rails Apps Composer Gem":http://railsapps.github.com/tutorial-rails-apps-composer.html provides complete documentation:
|
@@ -26,9 +28,15 @@ h2. !http://twitter-badges.s3.amazonaws.com/t_logo-a.png(Follow on Twitter)!:htt
|
|
26
28
|
|
27
29
|
Follow the project on Twitter: "@rails_apps":http://twitter.com/rails_apps. Tweet some praise if you like what you've found.
|
28
30
|
|
29
|
-
h2. What's New
|
31
|
+
h2. What's New
|
32
|
+
|
33
|
+
See the "CHANGELOG":https://github.com/RailsApps/rails_apps_composer/blob/master/CHANGELOG.textile for details.
|
34
|
+
|
35
|
+
h3. Version 2.1
|
36
|
+
|
37
|
+
* use local recipes
|
30
38
|
|
31
|
-
|
39
|
+
h3. Version 2.0
|
32
40
|
|
33
41
|
* the "Guide":http://railsapps.github.com/tutorial-rails-apps-composer.html provides complete documentation
|
34
42
|
* diagnostics compare your selected recipes and preferences to known working combinations
|
data/lib/rails_wizard/command.rb
CHANGED
@@ -7,7 +7,9 @@ module RailsWizard
|
|
7
7
|
desc "new APP_NAME", "create a new Rails app"
|
8
8
|
method_option :recipes, :type => :array, :aliases => "-r"
|
9
9
|
method_option :defaults, :type => :string, :aliases => "-d"
|
10
|
+
method_option :recipe_dirs, :type => :array, :aliases => "-l"
|
10
11
|
def new(name)
|
12
|
+
add_recipes
|
11
13
|
args = ask_for_args
|
12
14
|
recipes, defaults = load_defaults
|
13
15
|
recipes = ask_for_recipes(recipes)
|
@@ -18,7 +20,9 @@ module RailsWizard
|
|
18
20
|
desc "template TEMPLATE_FILE", "create a new Rails template"
|
19
21
|
method_option :recipes, :type => :array, :aliases => "-r"
|
20
22
|
method_option :defaults, :type => :string, :aliases => "-d"
|
23
|
+
method_option :recipe_dirs, :type => :array, :aliases => "-l"
|
21
24
|
def template(template_name)
|
25
|
+
add_recipes
|
22
26
|
recipes, defaults = load_defaults
|
23
27
|
recipes = ask_for_recipes(recipes)
|
24
28
|
gems = ask_for_gems
|
@@ -46,6 +50,12 @@ module RailsWizard
|
|
46
50
|
def green; "\033[32m" end
|
47
51
|
def yellow; "\033[33m" end
|
48
52
|
|
53
|
+
def add_recipes
|
54
|
+
if dirs = options[:recipe_dirs]
|
55
|
+
dirs.each { |d| Recipes.add_from_directory(d) }
|
56
|
+
end
|
57
|
+
end
|
58
|
+
|
49
59
|
def load_defaults
|
50
60
|
# Load defaults from a file; if a file specifies recipes, they'll be run *before*
|
51
61
|
# any on the command line (or prompted for)..
|
data/lib/rails_wizard/recipes.rb
CHANGED
@@ -34,5 +34,15 @@ module RailsWizard
|
|
34
34
|
def self.remove_from_category(category, recipe)
|
35
35
|
(@@categories[category.to_s] ||= []).delete(recipe.key)
|
36
36
|
end
|
37
|
+
|
38
|
+
def self.add_from_directory(directory)
|
39
|
+
Dir.foreach(directory) do |file|
|
40
|
+
path = File.join(directory, file)
|
41
|
+
next unless path.match /\.rb$/
|
42
|
+
key = File.basename(path, '.rb')
|
43
|
+
recipe = Recipe.generate(key, File.open(path))
|
44
|
+
add(recipe)
|
45
|
+
end
|
46
|
+
end
|
37
47
|
end
|
38
48
|
end
|
data/lib/rails_wizard.rb
CHANGED
@@ -4,8 +4,4 @@ require 'rails_wizard/config'
|
|
4
4
|
require 'rails_wizard/diagnostics'
|
5
5
|
require 'rails_wizard/template'
|
6
6
|
|
7
|
-
|
8
|
-
key = File.basename(path, '.rb')
|
9
|
-
recipe = RailsWizard::Recipe.generate(key, File.open(path))
|
10
|
-
RailsWizard::Recipes.add(recipe)
|
11
|
-
end
|
7
|
+
RailsWizard::Recipes.add_from_directory(File.dirname(__FILE__) + '/../recipes')
|
data/recipes/gems.rb
CHANGED
@@ -15,7 +15,7 @@ gem 'unicorn', '>= 4.3.1', :group => :production if prefer :prod_webserver, 'uni
|
|
15
15
|
gem 'puma', '>= 1.5.0', :group => :production if prefer :prod_webserver, 'puma'
|
16
16
|
|
17
17
|
## Database Adapter
|
18
|
-
gem 'mongoid', '>= 3.0.
|
18
|
+
gem 'mongoid', '>= 3.0.3' if prefer :orm, 'mongoid'
|
19
19
|
gem 'pg', '>= 0.14.0' if prefer :database, 'postgresql'
|
20
20
|
gem 'mysql2', '>= 0.3.11' if prefer :database, 'mysql'
|
21
21
|
copy_from_repo 'config/database-postgresql.yml', :prefs => 'postgresql'
|
@@ -54,24 +54,24 @@ end
|
|
54
54
|
if prefer :integration, 'cucumber'
|
55
55
|
gem 'cucumber-rails', '>= 1.3.0', :group => :test, :require => false
|
56
56
|
gem 'database_cleaner', '>= 0.8.0', :group => :test unless prefer :orm, 'mongoid'
|
57
|
-
gem 'launchy', '>= 2.1.
|
57
|
+
gem 'launchy', '>= 2.1.2', :group => :test
|
58
58
|
end
|
59
59
|
gem 'turnip', '>= 1.0.0', :group => :test if prefer :integration, 'turnip'
|
60
|
-
gem 'factory_girl_rails', '>=
|
61
|
-
gem 'machinist', :group => :test if prefer :fixtures, 'machinist'
|
60
|
+
gem 'factory_girl_rails', '>= 4.0.0', :group => [:development, :test] if prefer :fixtures, 'factory_girl'
|
61
|
+
gem 'machinist', '>= 2.0', :group => :test if prefer :fixtures, 'machinist'
|
62
62
|
|
63
63
|
## Front-end Framework
|
64
64
|
gem 'bootstrap-sass', '>= 2.0.4.0' if prefer :bootstrap, 'sass'
|
65
|
-
gem 'zurb-foundation', '>= 3.0.
|
65
|
+
gem 'zurb-foundation', '>= 3.0.8' if prefer :frontend, 'foundation'
|
66
66
|
if prefer :bootstrap, 'less'
|
67
|
-
gem 'twitter-bootstrap-rails', '>= 2.
|
67
|
+
gem 'twitter-bootstrap-rails', '>= 2.1.1', :group => :assets
|
68
68
|
# install gem 'therubyracer' to use Less
|
69
|
-
gem 'therubyracer', :group => :assets, :platform => :ruby
|
69
|
+
gem 'therubyracer', '>= 0.10.2', :group => :assets, :platform => :ruby
|
70
70
|
end
|
71
71
|
|
72
72
|
## Email
|
73
|
-
gem 'sendgrid' if prefer :email, 'sendgrid'
|
74
|
-
gem 'hominid' if prefer :email, 'mandrill'
|
73
|
+
gem 'sendgrid', '>= 1.0.1' if prefer :email, 'sendgrid'
|
74
|
+
gem 'hominid', '>= 3.0.5' if prefer :email, 'mandrill'
|
75
75
|
|
76
76
|
## Authentication (Devise)
|
77
77
|
gem 'devise', '>= 2.1.2' if prefer :authentication, 'devise'
|
@@ -89,7 +89,7 @@ gem 'omniauth-tumblr' if prefer :omniauth_provider, 'tumblr'
|
|
89
89
|
## Authorization
|
90
90
|
if prefer :authorization, 'cancan'
|
91
91
|
gem 'cancan', '>= 1.6.8'
|
92
|
-
gem 'rolify', '>= 3.
|
92
|
+
gem 'rolify', '>= 3.2.0'
|
93
93
|
end
|
94
94
|
|
95
95
|
## Signup App
|
data/recipes/models.rb
CHANGED
@@ -33,17 +33,19 @@ after_bundler do
|
|
33
33
|
### SUBDOMAINS ###
|
34
34
|
copy_from_repo 'app/models/user.rb', :repo => 'https://raw.github.com/RailsApps/rails3-subdomains/master/' if prefer :starter_app, 'subdomains'
|
35
35
|
### AUTHORIZATION (insert 'rolify' after User model is created) ###
|
36
|
-
|
37
|
-
|
38
|
-
|
39
|
-
|
40
|
-
|
41
|
-
|
42
|
-
|
43
|
-
|
44
|
-
|
45
|
-
|
46
|
-
|
36
|
+
if prefer :authorization, 'cancan'
|
37
|
+
unless prefer :orm, 'mongoid'
|
38
|
+
generate 'rolify:role Role User'
|
39
|
+
else
|
40
|
+
generate 'rolify:role Role User mongoid'
|
41
|
+
# correct the generation of rolify 3.1 with mongoid
|
42
|
+
# the call to `rolify` should be *after* the inclusion of mongoid
|
43
|
+
# (see https://github.com/EppO/rolify/issues/61)
|
44
|
+
# This isn't needed for rolify>=3.2.0.beta4, but should cause no harm
|
45
|
+
gsub_file 'app/models/user.rb',
|
46
|
+
/^\s*(rolify.*?)$\s*(include Mongoid::Document.*?)$/,
|
47
|
+
" \\2\n extend Rolify\n \\1\n"
|
48
|
+
end
|
47
49
|
end
|
48
50
|
### GIT ###
|
49
51
|
git :add => '.' if prefer :git, true
|
@@ -21,4 +21,9 @@ describe RailsWizard::Recipes do
|
|
21
21
|
RailsWizard::Recipes.for('test').should be_include('recipe_test')
|
22
22
|
end
|
23
23
|
end
|
24
|
+
|
25
|
+
it 'should add recipes in a directory with add_from_directory' do
|
26
|
+
subject.add_from_directory(File.join(File.dirname(__FILE__), '..', 'test_recipes'))
|
27
|
+
subject.list.should include 'test_recipe_in_file'
|
28
|
+
end
|
24
29
|
end
|
data/templates/layout.erb
CHANGED
@@ -98,7 +98,11 @@ end
|
|
98
98
|
# >-----------------------------[ Run 'Bundle Install' ]-------------------------------<
|
99
99
|
|
100
100
|
say_wizard "Installing gems. This will take a while."
|
101
|
-
|
101
|
+
if prefs.has_key? :bundle_path
|
102
|
+
run "bundle install --without production #{prefs[:bundle_path]}"
|
103
|
+
else
|
104
|
+
run 'bundle install --without production'
|
105
|
+
end
|
102
106
|
|
103
107
|
# >-----------------------------[ Run 'After Bundler' Callbacks ]-------------------------------<
|
104
108
|
|
data/version.rb
CHANGED
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.0
|
4
|
+
version: 2.1.0
|
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
|
+
date: 2012-08-11 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: i18n
|
@@ -183,6 +183,7 @@ files:
|
|
183
183
|
- spec/spec_helper.rb
|
184
184
|
- spec/support/rails_directory.rb
|
185
185
|
- spec/support/template_runner.rb
|
186
|
+
- spec/test_recipes/test_recipe_in_file.rb
|
186
187
|
- bin/rails_apps_composer
|
187
188
|
homepage: http://github.com/RailsApps/rails_apps_composer
|
188
189
|
licenses: []
|
@@ -198,7 +199,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
198
199
|
version: '0'
|
199
200
|
segments:
|
200
201
|
- 0
|
201
|
-
hash:
|
202
|
+
hash: 282801510994621394
|
202
203
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
203
204
|
none: false
|
204
205
|
requirements:
|
@@ -207,7 +208,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
207
208
|
version: '0'
|
208
209
|
segments:
|
209
210
|
- 0
|
210
|
-
hash:
|
211
|
+
hash: 282801510994621394
|
211
212
|
requirements: []
|
212
213
|
rubyforge_project: rails_apps_composer
|
213
214
|
rubygems_version: 1.8.24
|
@@ -223,3 +224,4 @@ test_files:
|
|
223
224
|
- spec/spec_helper.rb
|
224
225
|
- spec/support/rails_directory.rb
|
225
226
|
- spec/support/template_runner.rb
|
227
|
+
- spec/test_recipes/test_recipe_in_file.rb
|