rails_apps_composer 1.0.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.
Files changed (64) hide show
  1. data/README.textile +313 -0
  2. data/bin/rails_apps_composer +7 -0
  3. data/lib/rails_wizard.rb +10 -0
  4. data/lib/rails_wizard/command.rb +79 -0
  5. data/lib/rails_wizard/config.rb +86 -0
  6. data/lib/rails_wizard/recipe.rb +106 -0
  7. data/lib/rails_wizard/recipes.rb +38 -0
  8. data/lib/rails_wizard/template.rb +58 -0
  9. data/recipes/action_mailer.rb +41 -0
  10. data/recipes/activerecord.rb +37 -0
  11. data/recipes/add_user.rb +87 -0
  12. data/recipes/add_user_name.rb +74 -0
  13. data/recipes/application_layout.rb +45 -0
  14. data/recipes/ban_spiders.rb +27 -0
  15. data/recipes/capybara.rb +34 -0
  16. data/recipes/cleanup.rb +36 -0
  17. data/recipes/css_setup.rb +42 -0
  18. data/recipes/cucumber.rb +62 -0
  19. data/recipes/devise.rb +76 -0
  20. data/recipes/devise_navigation.rb +93 -0
  21. data/recipes/env_yaml.rb +54 -0
  22. data/recipes/git.rb +38 -0
  23. data/recipes/haml.rb +23 -0
  24. data/recipes/heroku.rb +58 -0
  25. data/recipes/home_page.rb +45 -0
  26. data/recipes/home_page_users.rb +47 -0
  27. data/recipes/hoptoad.rb +34 -0
  28. data/recipes/jammit.rb +43 -0
  29. data/recipes/jquery.rb +70 -0
  30. data/recipes/less.rb +12 -0
  31. data/recipes/mongo_mapper.rb +18 -0
  32. data/recipes/mongohq.rb +59 -0
  33. data/recipes/mongoid.rb +39 -0
  34. data/recipes/mootools.rb +23 -0
  35. data/recipes/navigation.rb +68 -0
  36. data/recipes/omniauth.rb +152 -0
  37. data/recipes/omniauth_email.rb +82 -0
  38. data/recipes/pow.rb +12 -0
  39. data/recipes/prototype.rb +11 -0
  40. data/recipes/rails_admin.rb +21 -0
  41. data/recipes/redis.rb +17 -0
  42. data/recipes/redistogo.rb +40 -0
  43. data/recipes/rightjs.rb +17 -0
  44. data/recipes/rspec.rb +112 -0
  45. data/recipes/sass.rb +13 -0
  46. data/recipes/seed_database.rb +42 -0
  47. data/recipes/sequel.rb +13 -0
  48. data/recipes/settingslogic.rb +43 -0
  49. data/recipes/slim.rb +11 -0
  50. data/recipes/test_unit.rb +11 -0
  51. data/recipes/users_page.rb +103 -0
  52. data/spec/rails_wizard/config_spec.rb +99 -0
  53. data/spec/rails_wizard/recipe_spec.rb +103 -0
  54. data/spec/rails_wizard/recipes/sanity_spec.rb +30 -0
  55. data/spec/rails_wizard/recipes_spec.rb +24 -0
  56. data/spec/rails_wizard/template_spec.rb +48 -0
  57. data/spec/spec_helper.rb +11 -0
  58. data/spec/support/rails_directory.rb +17 -0
  59. data/spec/support/template_runner.rb +28 -0
  60. data/templates/helpers.erb +45 -0
  61. data/templates/layout.erb +69 -0
  62. data/templates/recipe.erb +10 -0
  63. data/version.rb +3 -0
  64. metadata +206 -0
@@ -0,0 +1,103 @@
1
+ require 'spec_helper'
2
+
3
+ describe RailsWizard::Recipe do
4
+ context "with a generated recipe" do
5
+ subject{ RailsWizard::Recipe.generate('recipe_example', "# this is a test", :category => 'example', :name => "RailsWizard Example") }
6
+
7
+ context 'string setter methods' do
8
+ (RailsWizard::Recipe::ATTRIBUTES - ['config']).each do |setter|
9
+ it "should be able to set #{setter} with an argument" do
10
+ subject.send(setter + '=', "test")
11
+ subject.send(setter).should == 'test'
12
+ end
13
+
14
+ it 'should be able to get the value from the instance' do
15
+ subject.send(setter + '=', 'test')
16
+ subject.new.send(setter).should == subject.send(setter)
17
+ end
18
+ end
19
+ end
20
+
21
+ describe '.attributes' do
22
+ it 'should be accessible from the instance' do
23
+ subject.new.attributes.should == subject.attributes
24
+ end
25
+ end
26
+
27
+ describe '.generate' do
28
+ it 'should work with a string and hash as arguments' do
29
+ recipe = RailsWizard::Recipe.generate('some_key', '# some code', :name => "Example")
30
+ recipe.superclass.should == RailsWizard::Recipe
31
+ end
32
+
33
+ it 'should work with an IO object' do
34
+ file = StringIO.new <<-RUBY
35
+ # this is an example
36
+
37
+ __END__
38
+
39
+ category: example
40
+ name: This is an Example
41
+ description: You know it's an exmaple.
42
+ RUBY
43
+ recipe = RailsWizard::Recipe.generate('just_a_test', file)
44
+ recipe.template.should == '# this is an example'
45
+ recipe.category.should == 'example'
46
+ recipe.name.should == 'This is an Example'
47
+ end
48
+
49
+ it 'should raise an exception if the file is incorrectly formatted' do
50
+ file = StringIO.new <<-RUBY
51
+ # just ruby, no YAML
52
+ RUBY
53
+ lambda{RailsWizard::Recipe.generate('testing',file)}.should raise_error(ArgumentError)
54
+ end
55
+ end
56
+
57
+ describe '#compile' do
58
+ it 'should say the name' do
59
+ subject.name = "Awesome Sauce"
60
+ subject.new.compile.should be_include("say_recipe 'Awesome Sauce'")
61
+ end
62
+
63
+ it 'should include the template' do
64
+ subject.template = "This is only a test."
65
+ subject.new.compile.should be_include(subject.template)
66
+ end
67
+ end
68
+ end
69
+
70
+ it 'should set default attributes' do
71
+ recipe = RailsWizard::Recipe.generate('abc','# test')
72
+
73
+ RailsWizard::Recipe::DEFAULT_ATTRIBUTES.each_pair do |k,v|
74
+ recipe.send(k).should == v
75
+ end
76
+ end
77
+
78
+ context 'Comparable' do
79
+ subject{ RailsWizard::Recipe }
80
+ it 'a < b.run_after(a)' do
81
+ A = subject.generate('a', '#')
82
+ B = subject.generate('b', '#', :run_after => ['a'])
83
+
84
+ (A < B).should be_true
85
+ end
86
+
87
+ it 'a > b.run_before(a)' do
88
+ A = subject.generate('a', '#')
89
+ B = subject.generate('b', '#', :run_before => ['a'])
90
+
91
+ (A > B).should be_true
92
+ end
93
+
94
+ after do
95
+ Object.send :remove_const, :A if defined?(A)
96
+ Object.send :remove_const, :B if defined?(B)
97
+ end
98
+ end
99
+ end
100
+
101
+ __END__
102
+
103
+ this is a test
@@ -0,0 +1,30 @@
1
+ require 'spec_helper'
2
+
3
+ # This is a simple set of tests to make sure that
4
+ # all of the recipes conform to the base requirements.
5
+
6
+ RailsWizard::Recipes.list_classes.each do |recipe|
7
+ describe recipe do
8
+ it("should have a name"){ recipe.name.should be_kind_of(String) }
9
+ it("should have a description"){ recipe.description.should be_kind_of(String) }
10
+ it("should have a template"){ recipe.template.should be_kind_of(String) }
11
+ it("should be able to compile"){ recipe.new.compile.should be_kind_of(String) }
12
+
13
+ it "should have a string or nil category" do
14
+ if recipe.category
15
+ recipe.category.should be_kind_of(String)
16
+ end
17
+ end
18
+
19
+ it "should have a Config or nil config" do
20
+ if recipe.config
21
+ recipe.config.should be_kind_of(RailsWizard::Config)
22
+ end
23
+ end
24
+
25
+ it "should be in the list" do
26
+ RailsWizard::Recipes.list_classes.should be_include(recipe)
27
+ RailsWizard::Recipes.list.should be_include(recipe.key)
28
+ end
29
+ end
30
+ end
@@ -0,0 +1,24 @@
1
+ require 'spec_helper'
2
+
3
+ describe RailsWizard::Recipes do
4
+ subject{ RailsWizard::Recipes }
5
+ let(:recipe){ RailsWizard::Recipe.generate("recipe_test", "# Testing", :name => "Test Recipe", :category => "test", :description => "Just a test.")}
6
+
7
+ before(:all) do
8
+ RailsWizard::Recipes.add(recipe)
9
+ end
10
+
11
+ it '.list_classes should include recipe classes' do
12
+ subject.list_classes.should be_include(recipe)
13
+ end
14
+
15
+ it '.list should include recipe keys' do
16
+ subject.list.should be_include('recipe_test')
17
+ end
18
+
19
+ describe '.for' do
20
+ it 'should find for a given category' do
21
+ RailsWizard::Recipes.for('test').should be_include('recipe_test')
22
+ end
23
+ end
24
+ end
@@ -0,0 +1,48 @@
1
+ require 'spec_helper'
2
+
3
+ describe RailsWizard::Template do
4
+ subject{ RailsWizard::Template }
5
+ let(:recipe){ RailsWizard::Recipe.generate('name','# test') }
6
+
7
+ describe '#initialize' do
8
+ it 'should work with classes' do
9
+ subject.new([recipe]).recipes.should == [recipe]
10
+ end
11
+ end
12
+
13
+ describe '#recipes_with_dependencies' do
14
+ def r(*deps)
15
+ mock(:Class, :requires => deps, :superclass => RailsWizard::Recipe)
16
+ end
17
+
18
+ subject do
19
+ @template = RailsWizard::Template.new([])
20
+ @template.stub!(:recipes).and_return(@recipes)
21
+ @template.stub!(:recipe_classes).and_return(@recipes)
22
+ @template
23
+ end
24
+
25
+ it 'should return the same number recipes if none have dependencies' do
26
+ @recipes = [r, r]
27
+ subject.recipes_with_dependencies.size.should == 2
28
+ end
29
+
30
+ it 'should handle simple dependencies' do
31
+ @recipes = [r(r, r), r(r)]
32
+ subject.recipes_with_dependencies.size.should == 5
33
+ end
34
+
35
+ it 'should handle multi-level dependencies' do
36
+ @recipes = [r(r(r))]
37
+ subject.recipes_with_dependencies.size.should == 3
38
+ end
39
+
40
+ it 'should uniqify' do
41
+ a = r
42
+ b = r(a)
43
+ c = r(r, a, b)
44
+ @recipes = [a,b,c]
45
+ subject.recipes_with_dependencies.size.should == 4
46
+ end
47
+ end
48
+ end
@@ -0,0 +1,11 @@
1
+ require 'bundler'
2
+ Bundler.setup
3
+ require 'rspec'
4
+
5
+ Dir[File.dirname(__FILE__) + '/support/*'].each{|path| require path}
6
+
7
+ require 'rails_wizard'
8
+
9
+ RSpec.configure do |config|
10
+
11
+ end
@@ -0,0 +1,17 @@
1
+ class RailsDirectory
2
+ def initialize(path)
3
+ @path = path
4
+ end
5
+
6
+ def file_path(path)
7
+ File.join(@path, path)
8
+ end
9
+
10
+ def has_file?(path)
11
+ File.exist?(file_path(path))
12
+ end
13
+
14
+ def [](path)
15
+ File.open(file_path(path)).read
16
+ end
17
+ end
@@ -0,0 +1,28 @@
1
+ class TemplateRunner
2
+ attr_reader :template, :config, :app_name, :dir, :rails_dir, :output
3
+ def initialize(template, config)
4
+ @template = template
5
+ @config = config
6
+ end
7
+
8
+ def run(app_name = 'rails_app')
9
+ @app_name = app_name
10
+ @dir = Dir.mktmpdir
11
+ @rails_dir = File.join(@dir, @app_name)
12
+ Dir.chrdir(@dir) do
13
+ template_file = File.open 'template.rb', 'w'
14
+ template_file.write
15
+ template_file.close
16
+ @output = `rails new #{@app_name} -m template.rb`
17
+ end
18
+ @output
19
+ end
20
+
21
+ def rails
22
+ RailsDirectory.new(@rails_dir)
23
+ end
24
+
25
+ def clean
26
+ FileUtils.remove_entry_secure @dir
27
+ end
28
+ end
@@ -0,0 +1,45 @@
1
+ def recipes; @recipes end
2
+ def recipe?(name); @recipes.include?(name) end
3
+
4
+ def say_custom(tag, text); say "\033[1m\033[36m" + tag.to_s.rjust(10) + "\033[0m" + " #{text}" end
5
+ def say_recipe(name); say "\033[1m\033[36m" + "recipe".rjust(10) + "\033[0m" + " Running #{name} recipe..." end
6
+ def say_wizard(text); say_custom(@current_recipe || 'wizard', text) end
7
+
8
+ def ask_wizard(question)
9
+ ask "\033[1m\033[30m\033[46m" + (@current_recipe || "prompt").rjust(10) + "\033[0m\033[36m" + " #{question}\033[0m"
10
+ end
11
+
12
+ def yes_wizard?(question)
13
+ answer = ask_wizard(question + " \033[33m(y/n)\033[0m")
14
+ case answer.downcase
15
+ when "yes", "y"
16
+ true
17
+ when "no", "n"
18
+ false
19
+ else
20
+ yes_wizard?(question)
21
+ end
22
+ end
23
+
24
+ def no_wizard?(question); !yes_wizard?(question) end
25
+
26
+ def multiple_choice(question, choices)
27
+ say_custom('question', question)
28
+ values = {}
29
+ choices.each_with_index do |choice,i|
30
+ values[(i + 1).to_s] = choice[1]
31
+ say_custom (i + 1).to_s + ')', choice[0]
32
+ end
33
+ answer = ask_wizard("Enter your selection:") while !values.keys.include?(answer)
34
+ values[answer]
35
+ end
36
+
37
+ @current_recipe = nil
38
+ @configs = {}
39
+
40
+ @after_blocks = []
41
+ def after_bundler(&block); @after_blocks << [@current_recipe, block]; end
42
+ @after_everything_blocks = []
43
+ def after_everything(&block); @after_everything_blocks << [@current_recipe, block]; end
44
+ @before_configs = {}
45
+ def before_config(&block); @before_configs[@current_recipe] = block; end
@@ -0,0 +1,69 @@
1
+ # >---------------------------------------------------------------------------<
2
+ #
3
+ # _____ _ _ __ ___ _
4
+ # | __ \ (_) | \ \ / (_) | |
5
+ # | |__) |__ _ _| |___\ \ /\ / / _ ______ _ _ __ __| |
6
+ # | _ // _` | | / __|\ \/ \/ / | |_ / _` | '__/ _` |
7
+ # | | \ \ (_| | | \__ \ \ /\ / | |/ / (_| | | | (_| |
8
+ # |_| \_\__,_|_|_|___/ \/ \/ |_/___\__,_|_| \__,_|
9
+ #
10
+ # This template was generated by rails_apps_composer, a custom version of
11
+ # RailsWizard, the application template builder. For more information, see:
12
+ # https://github.com/fortuity/rails_apps_composer/
13
+ #
14
+ # >---------------------------------------------------------------------------<
15
+
16
+ # >----------------------------[ Initial Setup ]------------------------------<
17
+
18
+ initializer 'generators.rb', <<-RUBY
19
+ Rails.application.config.generators do |g|
20
+ end
21
+ RUBY
22
+
23
+ @recipes = <%= resolve_recipes.map(&:key).inspect %>
24
+
25
+ <%= render "helpers" %>
26
+
27
+ case Rails::VERSION::MAJOR.to_s
28
+ when "3"
29
+ case Rails::VERSION::MINOR.to_s
30
+ when "1"
31
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING}."
32
+ @recipes << 'rails 3.1'
33
+ when "0"
34
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING}."
35
+ @recipes << 'rails 3.0'
36
+ else
37
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported."
38
+ end
39
+ else
40
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported."
41
+ end
42
+
43
+ say_wizard "Checking configuration. Please confirm your preferences."
44
+
45
+ <% resolve_recipes.each do |recipe| %>
46
+ <%= render 'recipe', recipe.get_binding %>
47
+ <% end %>
48
+
49
+ <% if custom_code? %># >-----------------------------[ Custom Code ]-------------------------------<
50
+
51
+ <%= custom_code %><% end %>
52
+
53
+ @current_recipe = nil
54
+
55
+ # >-----------------------------[ Run Bundler ]-------------------------------<
56
+
57
+ say_wizard "Running 'bundle install'. This will take a while."
58
+ run 'bundle install'
59
+ say_wizard "Running 'after bundler' callbacks."
60
+ @after_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; b[1].call}
61
+
62
+ @current_recipe = nil
63
+ say_wizard "Running 'after everything' callbacks."
64
+ @after_everything_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; b[1].call}
65
+
66
+ @current_recipe = nil
67
+ say_wizard "Finished running the rails_apps_composer app template."
68
+ say_wizard "Your new Rails app is ready. Any problems?"
69
+ say_wizard "See http://github.com/fortuity/rails_apps_composer/issues"
@@ -0,0 +1,10 @@
1
+ # ><%= "[ #{name} ]".center(75,'-') %><
2
+
3
+ @current_recipe = "<%= key %>"
4
+ @before_configs["<%= key %>"].call if @before_configs["<%= key %>"]
5
+ say_recipe '<%= name %>'
6
+
7
+ <%= config.compile if config %>
8
+ @configs[@current_recipe] = config
9
+
10
+ <%= template %>
data/version.rb ADDED
@@ -0,0 +1,3 @@
1
+ module RailsWizard
2
+ VERSION = "1.0.0"
3
+ end
metadata ADDED
@@ -0,0 +1,206 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: rails_apps_composer
3
+ version: !ruby/object:Gem::Version
4
+ prerelease:
5
+ version: 1.0.0
6
+ platform: ruby
7
+ authors:
8
+ - Daniel Kehoe
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+
13
+ date: 2011-05-17 00:00:00 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: i18n
17
+ requirement: &id001 !ruby/object:Gem::Requirement
18
+ none: false
19
+ requirements:
20
+ - - ">="
21
+ - !ruby/object:Gem::Version
22
+ version: "0"
23
+ type: :runtime
24
+ prerelease: false
25
+ version_requirements: *id001
26
+ - !ruby/object:Gem::Dependency
27
+ name: activesupport
28
+ requirement: &id002 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: 3.0.0
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *id002
37
+ - !ruby/object:Gem::Dependency
38
+ name: thor
39
+ requirement: &id003 !ruby/object:Gem::Requirement
40
+ none: false
41
+ requirements:
42
+ - - ">="
43
+ - !ruby/object:Gem::Version
44
+ version: "0"
45
+ type: :runtime
46
+ prerelease: false
47
+ version_requirements: *id003
48
+ - !ruby/object:Gem::Dependency
49
+ name: rspec
50
+ requirement: &id004 !ruby/object:Gem::Requirement
51
+ none: false
52
+ requirements:
53
+ - - ~>
54
+ - !ruby/object:Gem::Version
55
+ version: 2.5.0
56
+ type: :development
57
+ prerelease: false
58
+ version_requirements: *id004
59
+ - !ruby/object:Gem::Dependency
60
+ name: mg
61
+ requirement: &id005 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ">="
65
+ - !ruby/object:Gem::Version
66
+ version: "0"
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *id005
70
+ - !ruby/object:Gem::Dependency
71
+ name: activesupport
72
+ requirement: &id006 !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ~>
76
+ - !ruby/object:Gem::Version
77
+ version: 3.0.0
78
+ type: :development
79
+ prerelease: false
80
+ version_requirements: *id006
81
+ - !ruby/object:Gem::Dependency
82
+ name: i18n
83
+ requirement: &id007 !ruby/object:Gem::Requirement
84
+ none: false
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: "0"
89
+ type: :development
90
+ prerelease: false
91
+ version_requirements: *id007
92
+ description: A gem with recipes to create Rails application templates you can use to generate Rails starter apps.
93
+ email:
94
+ - daniel@danielkehoe.com
95
+ executables:
96
+ - rails_apps_composer
97
+ extensions: []
98
+
99
+ extra_rdoc_files: []
100
+
101
+ files:
102
+ - lib/rails_wizard/command.rb
103
+ - lib/rails_wizard/config.rb
104
+ - lib/rails_wizard/recipe.rb
105
+ - lib/rails_wizard/recipes.rb
106
+ - lib/rails_wizard/template.rb
107
+ - lib/rails_wizard.rb
108
+ - recipes/action_mailer.rb
109
+ - recipes/activerecord.rb
110
+ - recipes/add_user.rb
111
+ - recipes/add_user_name.rb
112
+ - recipes/application_layout.rb
113
+ - recipes/ban_spiders.rb
114
+ - recipes/capybara.rb
115
+ - recipes/cleanup.rb
116
+ - recipes/css_setup.rb
117
+ - recipes/cucumber.rb
118
+ - recipes/devise.rb
119
+ - recipes/devise_navigation.rb
120
+ - recipes/env_yaml.rb
121
+ - recipes/git.rb
122
+ - recipes/haml.rb
123
+ - recipes/heroku.rb
124
+ - recipes/home_page.rb
125
+ - recipes/home_page_users.rb
126
+ - recipes/hoptoad.rb
127
+ - recipes/jammit.rb
128
+ - recipes/jquery.rb
129
+ - recipes/less.rb
130
+ - recipes/mongo_mapper.rb
131
+ - recipes/mongohq.rb
132
+ - recipes/mongoid.rb
133
+ - recipes/mootools.rb
134
+ - recipes/navigation.rb
135
+ - recipes/omniauth.rb
136
+ - recipes/omniauth_email.rb
137
+ - recipes/pow.rb
138
+ - recipes/prototype.rb
139
+ - recipes/rails_admin.rb
140
+ - recipes/redis.rb
141
+ - recipes/redistogo.rb
142
+ - recipes/rightjs.rb
143
+ - recipes/rspec.rb
144
+ - recipes/sass.rb
145
+ - recipes/seed_database.rb
146
+ - recipes/sequel.rb
147
+ - recipes/settingslogic.rb
148
+ - recipes/slim.rb
149
+ - recipes/test_unit.rb
150
+ - recipes/users_page.rb
151
+ - README.textile
152
+ - version.rb
153
+ - templates/helpers.erb
154
+ - templates/layout.erb
155
+ - templates/recipe.erb
156
+ - spec/rails_wizard/config_spec.rb
157
+ - spec/rails_wizard/recipe_spec.rb
158
+ - spec/rails_wizard/recipes/sanity_spec.rb
159
+ - spec/rails_wizard/recipes_spec.rb
160
+ - spec/rails_wizard/template_spec.rb
161
+ - spec/spec_helper.rb
162
+ - spec/support/rails_directory.rb
163
+ - spec/support/template_runner.rb
164
+ - bin/rails_apps_composer
165
+ homepage: http://github.com/RailsApps/rails_apps_composer
166
+ licenses: []
167
+
168
+ post_install_message:
169
+ rdoc_options: []
170
+
171
+ require_paths:
172
+ - lib
173
+ required_ruby_version: !ruby/object:Gem::Requirement
174
+ none: false
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ hash: 4261140538500670327
179
+ segments:
180
+ - 0
181
+ version: "0"
182
+ required_rubygems_version: !ruby/object:Gem::Requirement
183
+ none: false
184
+ requirements:
185
+ - - ">="
186
+ - !ruby/object:Gem::Version
187
+ hash: 4261140538500670327
188
+ segments:
189
+ - 0
190
+ version: "0"
191
+ requirements: []
192
+
193
+ rubyforge_project: rails_apps_composer
194
+ rubygems_version: 1.7.2
195
+ signing_key:
196
+ specification_version: 3
197
+ summary: A version of the RailsWizard gem with custom recipes for Rails starter apps.
198
+ test_files:
199
+ - spec/rails_wizard/config_spec.rb
200
+ - spec/rails_wizard/recipe_spec.rb
201
+ - spec/rails_wizard/recipes/sanity_spec.rb
202
+ - spec/rails_wizard/recipes_spec.rb
203
+ - spec/rails_wizard/template_spec.rb
204
+ - spec/spec_helper.rb
205
+ - spec/support/rails_directory.rb
206
+ - spec/support/template_runner.rb