thyone_creator 0.0.2

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 (63) hide show
  1. data/bin/thyone +7 -0
  2. data/lib/rails_wizard/command.rb +116 -0
  3. data/lib/rails_wizard/config.rb +88 -0
  4. data/lib/rails_wizard/recipe.rb +106 -0
  5. data/lib/rails_wizard/recipes.rb +38 -0
  6. data/lib/rails_wizard/template.rb +73 -0
  7. data/lib/rails_wizard.rb +10 -0
  8. data/recipes/action_mailer.rb +123 -0
  9. data/recipes/active_admin.rb +44 -0
  10. data/recipes/activerecord.rb +37 -0
  11. data/recipes/add_user.rb +129 -0
  12. data/recipes/airbrake.rb +34 -0
  13. data/recipes/backbone.rb +23 -0
  14. data/recipes/capybara.rb +34 -0
  15. data/recipes/cleanup.rb +40 -0
  16. data/recipes/cloudfiles.rb +36 -0
  17. data/recipes/compass.rb +46 -0
  18. data/recipes/compass_960.rb +48 -0
  19. data/recipes/cucumber.rb +75 -0
  20. data/recipes/datamapper.rb +111 -0
  21. data/recipes/devise.rb +114 -0
  22. data/recipes/extras.rb +80 -0
  23. data/recipes/git.rb +40 -0
  24. data/recipes/guard.rb +99 -0
  25. data/recipes/haml.rb +23 -0
  26. data/recipes/heroku.rb +62 -0
  27. data/recipes/home_page.rb +58 -0
  28. data/recipes/home_page_users.rb +47 -0
  29. data/recipes/html5.rb +153 -0
  30. data/recipes/inherited_resources.rb +23 -0
  31. data/recipes/less.rb +12 -0
  32. data/recipes/mongohq.rb +59 -0
  33. data/recipes/mongoid.rb +39 -0
  34. data/recipes/mongolab.rb +59 -0
  35. data/recipes/omniauth.rb +192 -0
  36. data/recipes/omniauth_email.rb +82 -0
  37. data/recipes/paperclip.rb +79 -0
  38. data/recipes/rails_admin.rb +21 -0
  39. data/recipes/redis.rb +23 -0
  40. data/recipes/responders.rb +10 -0
  41. data/recipes/resque.rb +25 -0
  42. data/recipes/rspec.rb +133 -0
  43. data/recipes/sass.rb +25 -0
  44. data/recipes/seed_database.rb +76 -0
  45. data/recipes/settingslogic.rb +43 -0
  46. data/recipes/simple_form.rb +54 -0
  47. data/recipes/slim.rb +46 -0
  48. data/recipes/static_page.rb +43 -0
  49. data/recipes/subdomains.rb +121 -0
  50. data/recipes/users_page.rb +165 -0
  51. data/spec/rails_wizard/config_spec.rb +108 -0
  52. data/spec/rails_wizard/recipe_spec.rb +81 -0
  53. data/spec/rails_wizard/recipes/sanity_spec.rb +30 -0
  54. data/spec/rails_wizard/recipes_spec.rb +24 -0
  55. data/spec/rails_wizard/template_spec.rb +78 -0
  56. data/spec/spec_helper.rb +11 -0
  57. data/spec/support/rails_directory.rb +17 -0
  58. data/spec/support/template_runner.rb +28 -0
  59. data/templates/helpers.erb +45 -0
  60. data/templates/layout.erb +83 -0
  61. data/templates/recipe.erb +10 -0
  62. data/version.rb +3 -0
  63. metadata +251 -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,83 @@
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/RailsApps/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
+ # this application template only supports Rails version 3.1 and newer
28
+ case Rails::VERSION::MAJOR.to_s
29
+ when "3"
30
+ case Rails::VERSION::MINOR.to_s
31
+ when "2"
32
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING}."
33
+ when "1"
34
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING}."
35
+ when "0"
36
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported. Try 3.1 or newer."
37
+ raise StandardError.new "Rails #{Rails::VERSION::STRING} is not supported. Try 3.1 or newer."
38
+ else
39
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING}."
40
+ end
41
+ else
42
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported. Try 3.1 or newer."
43
+ raise StandardError.new "Rails #{Rails::VERSION::STRING} is not supported. Try 3.1 or newer."
44
+ end
45
+
46
+ say_wizard "Checking configuration. Please confirm your preferences."
47
+
48
+ # >---------------------------[ Autoload Modules/Classes ]-----------------------------<
49
+
50
+ inject_into_file 'config/application.rb', :after => 'config.autoload_paths += %W(#{config.root}/extras)' do <<-'RUBY'
51
+
52
+ config.autoload_paths += %W(#{config.root}/lib)
53
+ RUBY
54
+ end
55
+
56
+ # >---------------------------------[ Recipes ]----------------------------------<
57
+
58
+ <% resolve_recipes.each do |recipe| %>
59
+ <%= render 'recipe', recipe.get_binding %>
60
+ <% end %>
61
+
62
+ <% if custom_code? %># >-----------------------------[ Custom Code ]-------------------------------<
63
+
64
+ <%= custom_code %><% end %>
65
+
66
+ @current_recipe = nil
67
+
68
+ # >-----------------------------[ Run Bundler ]-------------------------------<
69
+
70
+ say_wizard "Running 'bundle install'. This will take a while."
71
+ run 'bundle install'
72
+ run 'bundle update'
73
+ say_wizard "Running 'after bundler' callbacks."
74
+ require 'bundler/setup'
75
+ @after_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; b[1].call}
76
+
77
+ @current_recipe = nil
78
+ say_wizard "Running 'after everything' callbacks."
79
+ @after_everything_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; b[1].call}
80
+
81
+ @current_recipe = nil
82
+ say_wizard "Finished running the rails_apps_composer app template."
83
+ say_wizard "Your new Rails app is ready."
@@ -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.0.2"
3
+ end
metadata ADDED
@@ -0,0 +1,251 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: thyone_creator
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.0.2
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - babaru trinit
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-06-06 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: i18n
16
+ requirement: !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
26
+ requirements:
27
+ - - ! '>='
28
+ - !ruby/object:Gem::Version
29
+ version: '0'
30
+ - !ruby/object:Gem::Dependency
31
+ name: activesupport
32
+ requirement: !ruby/object:Gem::Requirement
33
+ none: false
34
+ requirements:
35
+ - - ! '>='
36
+ - !ruby/object:Gem::Version
37
+ version: 3.0.0
38
+ type: :runtime
39
+ prerelease: false
40
+ version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
42
+ requirements:
43
+ - - ! '>='
44
+ - !ruby/object:Gem::Version
45
+ version: 3.0.0
46
+ - !ruby/object:Gem::Dependency
47
+ name: thor
48
+ requirement: !ruby/object:Gem::Requirement
49
+ none: false
50
+ requirements:
51
+ - - ! '>='
52
+ - !ruby/object:Gem::Version
53
+ version: '0'
54
+ type: :runtime
55
+ prerelease: false
56
+ version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
58
+ requirements:
59
+ - - ! '>='
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ - !ruby/object:Gem::Dependency
63
+ name: rake
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - ! '>='
68
+ - !ruby/object:Gem::Version
69
+ version: '0'
70
+ type: :runtime
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - ! '>='
76
+ - !ruby/object:Gem::Version
77
+ version: '0'
78
+ - !ruby/object:Gem::Dependency
79
+ name: rspec
80
+ requirement: !ruby/object:Gem::Requirement
81
+ none: false
82
+ requirements:
83
+ - - ! '>='
84
+ - !ruby/object:Gem::Version
85
+ version: 2.5.0
86
+ type: :development
87
+ prerelease: false
88
+ version_requirements: !ruby/object:Gem::Requirement
89
+ none: false
90
+ requirements:
91
+ - - ! '>='
92
+ - !ruby/object:Gem::Version
93
+ version: 2.5.0
94
+ - !ruby/object:Gem::Dependency
95
+ name: mg
96
+ requirement: !ruby/object:Gem::Requirement
97
+ none: false
98
+ requirements:
99
+ - - ! '>='
100
+ - !ruby/object:Gem::Version
101
+ version: '0'
102
+ type: :development
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ none: false
106
+ requirements:
107
+ - - ! '>='
108
+ - !ruby/object:Gem::Version
109
+ version: '0'
110
+ - !ruby/object:Gem::Dependency
111
+ name: activesupport
112
+ requirement: !ruby/object:Gem::Requirement
113
+ none: false
114
+ requirements:
115
+ - - ! '>='
116
+ - !ruby/object:Gem::Version
117
+ version: 3.0.0
118
+ type: :development
119
+ prerelease: false
120
+ version_requirements: !ruby/object:Gem::Requirement
121
+ none: false
122
+ requirements:
123
+ - - ! '>='
124
+ - !ruby/object:Gem::Version
125
+ version: 3.0.0
126
+ - !ruby/object:Gem::Dependency
127
+ name: i18n
128
+ requirement: !ruby/object:Gem::Requirement
129
+ none: false
130
+ requirements:
131
+ - - ! '>='
132
+ - !ruby/object:Gem::Version
133
+ version: '0'
134
+ type: :development
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ none: false
138
+ requirements:
139
+ - - ! '>='
140
+ - !ruby/object:Gem::Version
141
+ version: '0'
142
+ description: A gem with recipes to create Rails application templates you can use
143
+ to generate Rails starter apps.
144
+ email:
145
+ - babaru.trinit@gmail.com
146
+ executables:
147
+ - thyone
148
+ extensions: []
149
+ extra_rdoc_files: []
150
+ files:
151
+ - lib/rails_wizard/command.rb
152
+ - lib/rails_wizard/config.rb
153
+ - lib/rails_wizard/recipe.rb
154
+ - lib/rails_wizard/recipes.rb
155
+ - lib/rails_wizard/template.rb
156
+ - lib/rails_wizard.rb
157
+ - recipes/action_mailer.rb
158
+ - recipes/active_admin.rb
159
+ - recipes/activerecord.rb
160
+ - recipes/add_user.rb
161
+ - recipes/airbrake.rb
162
+ - recipes/backbone.rb
163
+ - recipes/capybara.rb
164
+ - recipes/cleanup.rb
165
+ - recipes/cloudfiles.rb
166
+ - recipes/compass.rb
167
+ - recipes/compass_960.rb
168
+ - recipes/cucumber.rb
169
+ - recipes/datamapper.rb
170
+ - recipes/devise.rb
171
+ - recipes/extras.rb
172
+ - recipes/git.rb
173
+ - recipes/guard.rb
174
+ - recipes/haml.rb
175
+ - recipes/heroku.rb
176
+ - recipes/home_page.rb
177
+ - recipes/home_page_users.rb
178
+ - recipes/html5.rb
179
+ - recipes/inherited_resources.rb
180
+ - recipes/less.rb
181
+ - recipes/mongohq.rb
182
+ - recipes/mongoid.rb
183
+ - recipes/mongolab.rb
184
+ - recipes/omniauth.rb
185
+ - recipes/omniauth_email.rb
186
+ - recipes/paperclip.rb
187
+ - recipes/rails_admin.rb
188
+ - recipes/redis.rb
189
+ - recipes/responders.rb
190
+ - recipes/resque.rb
191
+ - recipes/rspec.rb
192
+ - recipes/sass.rb
193
+ - recipes/seed_database.rb
194
+ - recipes/settingslogic.rb
195
+ - recipes/simple_form.rb
196
+ - recipes/slim.rb
197
+ - recipes/static_page.rb
198
+ - recipes/subdomains.rb
199
+ - recipes/users_page.rb
200
+ - version.rb
201
+ - templates/helpers.erb
202
+ - templates/layout.erb
203
+ - templates/recipe.erb
204
+ - spec/rails_wizard/config_spec.rb
205
+ - spec/rails_wizard/recipe_spec.rb
206
+ - spec/rails_wizard/recipes/sanity_spec.rb
207
+ - spec/rails_wizard/recipes_spec.rb
208
+ - spec/rails_wizard/template_spec.rb
209
+ - spec/spec_helper.rb
210
+ - spec/support/rails_directory.rb
211
+ - spec/support/template_runner.rb
212
+ - bin/thyone
213
+ homepage: http://github.com/babaru/thyone_creator
214
+ licenses: []
215
+ post_install_message:
216
+ rdoc_options: []
217
+ require_paths:
218
+ - lib
219
+ required_ruby_version: !ruby/object:Gem::Requirement
220
+ none: false
221
+ requirements:
222
+ - - ! '>='
223
+ - !ruby/object:Gem::Version
224
+ version: '0'
225
+ segments:
226
+ - 0
227
+ hash: 2482826019460600701
228
+ required_rubygems_version: !ruby/object:Gem::Requirement
229
+ none: false
230
+ requirements:
231
+ - - ! '>='
232
+ - !ruby/object:Gem::Version
233
+ version: '0'
234
+ segments:
235
+ - 0
236
+ hash: 2482826019460600701
237
+ requirements: []
238
+ rubyforge_project: thyone_creator
239
+ rubygems_version: 1.8.24
240
+ signing_key:
241
+ specification_version: 3
242
+ summary: A version of the RailsWizard gem with custom recipes for Rails starter apps.
243
+ test_files:
244
+ - spec/rails_wizard/config_spec.rb
245
+ - spec/rails_wizard/recipe_spec.rb
246
+ - spec/rails_wizard/recipes/sanity_spec.rb
247
+ - spec/rails_wizard/recipes_spec.rb
248
+ - spec/rails_wizard/template_spec.rb
249
+ - spec/spec_helper.rb
250
+ - spec/support/rails_directory.rb
251
+ - spec/support/template_runner.rb