rails_apps_composer 2.0.1 → 2.1.0
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 +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
|