ey_rails_wizard 0.3.1

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 (93) hide show
  1. data/.gitignore +8 -0
  2. data/.rspec +2 -0
  3. data/.travis.yml +6 -0
  4. data/ChangeLog.md +23 -0
  5. data/Gemfile +3 -0
  6. data/MIT_LICENSE +20 -0
  7. data/README.md +78 -0
  8. data/Rakefile +45 -0
  9. data/autotest/discover.rb +1 -0
  10. data/bin/ey_rails_wizard +7 -0
  11. data/ey_rails_wizard.gemspec +28 -0
  12. data/lib/rails_wizard/command.rb +79 -0
  13. data/lib/rails_wizard/config.rb +86 -0
  14. data/lib/rails_wizard/recipe.rb +106 -0
  15. data/lib/rails_wizard/recipes.rb +38 -0
  16. data/lib/rails_wizard/template.rb +67 -0
  17. data/lib/rails_wizard.rb +10 -0
  18. data/recipes/active_admin.rb +18 -0
  19. data/recipes/activerecord.rb +69 -0
  20. data/recipes/cancan.rb +16 -0
  21. data/recipes/capybara.rb +34 -0
  22. data/recipes/carrierwave.rb +42 -0
  23. data/recipes/carrierwave_direct.rb +13 -0
  24. data/recipes/cartographer.rb +33 -0
  25. data/recipes/cucumber.rb +17 -0
  26. data/recipes/delayed_job.rb +16 -0
  27. data/recipes/devise.rb +52 -0
  28. data/recipes/devise_invitable.rb +23 -0
  29. data/recipes/env_yaml.rb +53 -0
  30. data/recipes/event_calendar.rb +12 -0
  31. data/recipes/eycloud.rb +30 -0
  32. data/recipes/eycloud_recipes_on_deploy.rb +20 -0
  33. data/recipes/factory_girl.rb +38 -0
  34. data/recipes/ffaker.rb +22 -0
  35. data/recipes/fixture_builder.rb +35 -0
  36. data/recipes/forgery.rb +15 -0
  37. data/recipes/git.rb +15 -0
  38. data/recipes/haml.rb +11 -0
  39. data/recipes/heroku.rb +58 -0
  40. data/recipes/hoptoad.rb +34 -0
  41. data/recipes/inherited_resources.rb +12 -0
  42. data/recipes/jammit.rb +43 -0
  43. data/recipes/jasmine.rb +12 -0
  44. data/recipes/jquery.rb +20 -0
  45. data/recipes/mini_magick.rb +13 -0
  46. data/recipes/mongo_mapper.rb +20 -0
  47. data/recipes/mongohq.rb +61 -0
  48. data/recipes/mongoid.rb +20 -0
  49. data/recipes/mootools.rb +23 -0
  50. data/recipes/mysql.rb +19 -0
  51. data/recipes/nifty_generators.rb +21 -0
  52. data/recipes/oa_oauth.rb +12 -0
  53. data/recipes/omniauth.rb +17 -0
  54. data/recipes/paper_trail.rb +17 -0
  55. data/recipes/pow.rb +12 -0
  56. data/recipes/prototype.rb +11 -0
  57. data/recipes/puma.rb +10 -0
  58. data/recipes/rails_admin.rb +21 -0
  59. data/recipes/rails_basics.rb +45 -0
  60. data/recipes/rails_dev_tweaks.rb +10 -0
  61. data/recipes/rails_erd.rb +9 -0
  62. data/recipes/rails_footnotes.rb +14 -0
  63. data/recipes/ransack.rb +32 -0
  64. data/recipes/redis.rb +15 -0
  65. data/recipes/resque.rb +37 -0
  66. data/recipes/rmagick.rb +13 -0
  67. data/recipes/rspec.rb +21 -0
  68. data/recipes/sass.rb +13 -0
  69. data/recipes/sequel.rb +13 -0
  70. data/recipes/settingslogic.rb +43 -0
  71. data/recipes/shoulda_matchers.rb +11 -0
  72. data/recipes/simple_form.rb +19 -0
  73. data/recipes/slim.rb +11 -0
  74. data/recipes/sqlite3.rb +10 -0
  75. data/recipes/test_unit.rb +11 -0
  76. data/recipes/thin.rb +10 -0
  77. data/recipes/thinking_sphinx.rb +14 -0
  78. data/recipes/twitter_bootstrap_rails.rb +142 -0
  79. data/recipes/unicorn.rb +10 -0
  80. data/sample.rb +77 -0
  81. data/spec/rails_wizard/config_spec.rb +99 -0
  82. data/spec/rails_wizard/recipe_spec.rb +103 -0
  83. data/spec/rails_wizard/recipes/sanity_spec.rb +30 -0
  84. data/spec/rails_wizard/recipes_spec.rb +24 -0
  85. data/spec/rails_wizard/template_spec.rb +48 -0
  86. data/spec/spec_helper.rb +11 -0
  87. data/spec/support/rails_directory.rb +17 -0
  88. data/spec/support/template_runner.rb +28 -0
  89. data/templates/helpers.erb +45 -0
  90. data/templates/layout.erb +45 -0
  91. data/templates/recipe.erb +10 -0
  92. data/version.rb +3 -0
  93. metadata +232 -0
@@ -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,45 @@
1
+ # >---------------------------------------------------------------------------<
2
+ #
3
+ # _____ _ _ __ ___ _
4
+ # | __ \ (_) | \ \ / (_) | |
5
+ # | |__) |__ _ _| |___\ \ /\ / / _ ______ _ _ __ __| |
6
+ # | _ // _` | | / __|\ \/ \/ / | |_ / _` | '__/ _` |
7
+ # | | \ \ (_| | | \__ \ \ /\ / | |/ / (_| | | | (_| |
8
+ # |_| \_\__,_|_|_|___/ \/ \/ |_/___\__,_|_| \__,_|
9
+ #
10
+ # This template was generated by RailsWizard, the amazing and awesome Rails
11
+ # application template builder. Get started at http://railswizard.org
12
+ #
13
+ # >---------------------------------------------------------------------------<
14
+
15
+ # >----------------------------[ Initial Setup ]------------------------------<
16
+
17
+ initializer 'generators.rb', <<-RUBY
18
+ Rails.application.config.generators do |g|
19
+ end
20
+ RUBY
21
+
22
+ @recipes = <%= resolve_recipes.map(&:key).inspect %>
23
+
24
+ <%= render "helpers" %>
25
+
26
+ <% resolve_recipes.each do |recipe| %>
27
+ <%= render 'recipe', recipe.get_binding %>
28
+ <% end %>
29
+
30
+ <% if custom_code? %># >-----------------------------[ Custom Code ]-------------------------------<
31
+
32
+ <%= custom_code %><% end %>
33
+
34
+ @current_recipe = nil
35
+
36
+ # >-----------------------------[ Run Bundler ]-------------------------------<
37
+
38
+ say_wizard "Running Bundler install. This will take a while."
39
+ run 'bundle install'
40
+ say_wizard "Running after Bundler callbacks."
41
+ @after_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; b[1].call}
42
+
43
+ @current_recipe = nil
44
+ say_wizard "Running after everything callbacks."
45
+ @after_everything_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; b[1].call}
@@ -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 = "0.3.1"
3
+ end
metadata ADDED
@@ -0,0 +1,232 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: ey_rails_wizard
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.3.1
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - Michael Bleigh
9
+ - Dr Nic Williams
10
+ autorequire:
11
+ bindir: bin
12
+ cert_chain: []
13
+ date: 2012-03-20 00:00:00.000000000 Z
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: i18n
17
+ requirement: &70293205581200 !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: *70293205581200
26
+ - !ruby/object:Gem::Dependency
27
+ name: activesupport
28
+ requirement: &70293205622240 !ruby/object:Gem::Requirement
29
+ none: false
30
+ requirements:
31
+ - - ~>
32
+ - !ruby/object:Gem::Version
33
+ version: '3.0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: *70293205622240
37
+ - !ruby/object:Gem::Dependency
38
+ name: thor
39
+ requirement: &70293205620500 !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: *70293205620500
48
+ - !ruby/object:Gem::Dependency
49
+ name: rspec
50
+ requirement: &70293205616920 !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: *70293205616920
59
+ - !ruby/object:Gem::Dependency
60
+ name: bundler
61
+ requirement: &70293205650640 !ruby/object:Gem::Requirement
62
+ none: false
63
+ requirements:
64
+ - - ~>
65
+ - !ruby/object:Gem::Version
66
+ version: 1.1.0
67
+ type: :development
68
+ prerelease: false
69
+ version_requirements: *70293205650640
70
+ - !ruby/object:Gem::Dependency
71
+ name: rails
72
+ requirement: &70293205647200 !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: *70293205647200
81
+ - !ruby/object:Gem::Dependency
82
+ name: ZenTest
83
+ requirement: &70293205663440 !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: *70293205663440
92
+ description: Quickly and easily create Rails application templates featuring dozens
93
+ of popular libraries tuned for Engine Yard Cloud
94
+ email:
95
+ - michael@intridea.com
96
+ - drnicwilliams@gmail.com
97
+ executables:
98
+ - ey_rails_wizard
99
+ extensions: []
100
+ extra_rdoc_files: []
101
+ files:
102
+ - .gitignore
103
+ - .rspec
104
+ - .travis.yml
105
+ - ChangeLog.md
106
+ - Gemfile
107
+ - MIT_LICENSE
108
+ - README.md
109
+ - Rakefile
110
+ - autotest/discover.rb
111
+ - bin/ey_rails_wizard
112
+ - ey_rails_wizard.gemspec
113
+ - lib/rails_wizard.rb
114
+ - lib/rails_wizard/command.rb
115
+ - lib/rails_wizard/config.rb
116
+ - lib/rails_wizard/recipe.rb
117
+ - lib/rails_wizard/recipes.rb
118
+ - lib/rails_wizard/template.rb
119
+ - recipes/active_admin.rb
120
+ - recipes/activerecord.rb
121
+ - recipes/cancan.rb
122
+ - recipes/capybara.rb
123
+ - recipes/carrierwave.rb
124
+ - recipes/carrierwave_direct.rb
125
+ - recipes/cartographer.rb
126
+ - recipes/cucumber.rb
127
+ - recipes/delayed_job.rb
128
+ - recipes/devise.rb
129
+ - recipes/devise_invitable.rb
130
+ - recipes/env_yaml.rb
131
+ - recipes/event_calendar.rb
132
+ - recipes/eycloud.rb
133
+ - recipes/eycloud_recipes_on_deploy.rb
134
+ - recipes/factory_girl.rb
135
+ - recipes/ffaker.rb
136
+ - recipes/fixture_builder.rb
137
+ - recipes/forgery.rb
138
+ - recipes/git.rb
139
+ - recipes/haml.rb
140
+ - recipes/heroku.rb
141
+ - recipes/hoptoad.rb
142
+ - recipes/inherited_resources.rb
143
+ - recipes/jammit.rb
144
+ - recipes/jasmine.rb
145
+ - recipes/jquery.rb
146
+ - recipes/mini_magick.rb
147
+ - recipes/mongo_mapper.rb
148
+ - recipes/mongohq.rb
149
+ - recipes/mongoid.rb
150
+ - recipes/mootools.rb
151
+ - recipes/mysql.rb
152
+ - recipes/nifty_generators.rb
153
+ - recipes/oa_oauth.rb
154
+ - recipes/omniauth.rb
155
+ - recipes/paper_trail.rb
156
+ - recipes/pow.rb
157
+ - recipes/prototype.rb
158
+ - recipes/puma.rb
159
+ - recipes/rails_admin.rb
160
+ - recipes/rails_basics.rb
161
+ - recipes/rails_dev_tweaks.rb
162
+ - recipes/rails_erd.rb
163
+ - recipes/rails_footnotes.rb
164
+ - recipes/ransack.rb
165
+ - recipes/redis.rb
166
+ - recipes/resque.rb
167
+ - recipes/rmagick.rb
168
+ - recipes/rspec.rb
169
+ - recipes/sass.rb
170
+ - recipes/sequel.rb
171
+ - recipes/settingslogic.rb
172
+ - recipes/shoulda_matchers.rb
173
+ - recipes/simple_form.rb
174
+ - recipes/slim.rb
175
+ - recipes/sqlite3.rb
176
+ - recipes/test_unit.rb
177
+ - recipes/thin.rb
178
+ - recipes/thinking_sphinx.rb
179
+ - recipes/twitter_bootstrap_rails.rb
180
+ - recipes/unicorn.rb
181
+ - sample.rb
182
+ - spec/rails_wizard/config_spec.rb
183
+ - spec/rails_wizard/recipe_spec.rb
184
+ - spec/rails_wizard/recipes/sanity_spec.rb
185
+ - spec/rails_wizard/recipes_spec.rb
186
+ - spec/rails_wizard/template_spec.rb
187
+ - spec/spec_helper.rb
188
+ - spec/support/rails_directory.rb
189
+ - spec/support/template_runner.rb
190
+ - templates/helpers.erb
191
+ - templates/layout.erb
192
+ - templates/recipe.erb
193
+ - version.rb
194
+ homepage: http://railswizard.engineyard.com/
195
+ licenses: []
196
+ post_install_message:
197
+ rdoc_options: []
198
+ require_paths:
199
+ - lib
200
+ required_ruby_version: !ruby/object:Gem::Requirement
201
+ none: false
202
+ requirements:
203
+ - - ! '>='
204
+ - !ruby/object:Gem::Version
205
+ version: '0'
206
+ segments:
207
+ - 0
208
+ hash: 3635330242989647989
209
+ required_rubygems_version: !ruby/object:Gem::Requirement
210
+ none: false
211
+ requirements:
212
+ - - ! '>='
213
+ - !ruby/object:Gem::Version
214
+ version: '0'
215
+ segments:
216
+ - 0
217
+ hash: 3635330242989647989
218
+ requirements: []
219
+ rubyforge_project:
220
+ rubygems_version: 1.8.17
221
+ signing_key:
222
+ specification_version: 3
223
+ summary: A tool for quickly generating Rails applications for Engine Yard Cloud.
224
+ test_files:
225
+ - spec/rails_wizard/config_spec.rb
226
+ - spec/rails_wizard/recipe_spec.rb
227
+ - spec/rails_wizard/recipes/sanity_spec.rb
228
+ - spec/rails_wizard/recipes_spec.rb
229
+ - spec/rails_wizard/template_spec.rb
230
+ - spec/spec_helper.rb
231
+ - spec/support/rails_directory.rb
232
+ - spec/support/template_runner.rb