ey_rails_wizard 0.3.1

Sign up to get free protection for your applications and to get access to all the features.
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