redmint_composer 2.3

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 (57) hide show
  1. checksums.yaml +7 -0
  2. data/README.textile +10 -0
  3. data/bin/redmint_composer +7 -0
  4. data/lib/rails_wizard.rb +7 -0
  5. data/lib/rails_wizard/command.rb +204 -0
  6. data/lib/rails_wizard/config.rb +88 -0
  7. data/lib/rails_wizard/diagnostics.rb +58 -0
  8. data/lib/rails_wizard/recipe.rb +114 -0
  9. data/lib/rails_wizard/recipes.rb +56 -0
  10. data/lib/rails_wizard/template.rb +111 -0
  11. data/recipes/admin.rb +42 -0
  12. data/recipes/analytics.rb +41 -0
  13. data/recipes/core.rb +32 -0
  14. data/recipes/deployment.rb +178 -0
  15. data/recipes/devise.rb +34 -0
  16. data/recipes/email.rb +65 -0
  17. data/recipes/email_dev.rb +92 -0
  18. data/recipes/example.rb +63 -0
  19. data/recipes/extras.rb +283 -0
  20. data/recipes/frontend.rb +33 -0
  21. data/recipes/gems.rb +274 -0
  22. data/recipes/git.rb +27 -0
  23. data/recipes/init.rb +179 -0
  24. data/recipes/learn_rails.rb +89 -0
  25. data/recipes/locale.rb +31 -0
  26. data/recipes/omniauth.rb +38 -0
  27. data/recipes/pages.rb +91 -0
  28. data/recipes/rails_bootstrap.rb +29 -0
  29. data/recipes/rails_devise.rb +26 -0
  30. data/recipes/rails_devise_pundit.rb +25 -0
  31. data/recipes/rails_devise_roles.rb +25 -0
  32. data/recipes/rails_foundation.rb +29 -0
  33. data/recipes/rails_mailinglist_activejob.rb +76 -0
  34. data/recipes/rails_omniauth.rb +27 -0
  35. data/recipes/rails_signup_download.rb +69 -0
  36. data/recipes/rails_stripe_checkout.rb +84 -0
  37. data/recipes/rails_stripe_coupons.rb +125 -0
  38. data/recipes/rails_stripe_membership_saas.rb +112 -0
  39. data/recipes/railsapps.rb +77 -0
  40. data/recipes/readme.rb +161 -0
  41. data/recipes/roles.rb +40 -0
  42. data/recipes/setup.rb +162 -0
  43. data/recipes/tests.rb +59 -0
  44. data/spec/rails_wizard/config_spec.rb +108 -0
  45. data/spec/rails_wizard/recipe_spec.rb +115 -0
  46. data/spec/rails_wizard/recipes/sanity_spec.rb +30 -0
  47. data/spec/rails_wizard/recipes_spec.rb +41 -0
  48. data/spec/rails_wizard/template_spec.rb +92 -0
  49. data/spec/spec_helper.rb +11 -0
  50. data/spec/support/rails_directory.rb +17 -0
  51. data/spec/support/template_runner.rb +28 -0
  52. data/spec/test_recipes/test_recipe_in_file.rb +9 -0
  53. data/templates/helpers.erb +138 -0
  54. data/templates/layout.erb +231 -0
  55. data/templates/recipe.erb +13 -0
  56. data/version.rb +3 -0
  57. metadata +201 -0
@@ -0,0 +1,231 @@
1
+ # >---------------------------------------------------------------------------<
2
+ #
3
+ # _____ _ _
4
+ # | __ \ (_) | /\
5
+ # | |__) |__ _ _| |___ / \ _ __ _ __ ___
6
+ # | _ // _` | | / __| / /\ \ | '_ \| '_ \/ __|
7
+ # | | \ \ (_| | | \__ \/ ____ \| |_) | |_) \__ \
8
+ # |_| \_\__,_|_|_|___/_/ \_\ .__/| .__/|___/
9
+ # | | | |
10
+ # |_| |_|
11
+ #
12
+ # Application template generated by the redmint_composer gem.
13
+ # Restrain your impulse to make changes to this file; instead,
14
+ # make changes to the recipes in the redmint_composer gem.
15
+ #
16
+ # For more information, see:
17
+ # https://github.com/adrianescat/redmint_composer
18
+ #
19
+ # Thank you to Michael Bleigh for leading the way with the RailsWizard gem.
20
+ #
21
+ # >---------------------------------------------------------------------------<
22
+
23
+ # >----------------------------[ Initial Setup ]------------------------------<
24
+
25
+ module Gemfile
26
+ class GemInfo
27
+ def initialize(name) @name=name; @group=[]; @opts={}; end
28
+ attr_accessor :name, :version
29
+ attr_reader :group, :opts
30
+
31
+ def opts=(new_opts={})
32
+ new_group = new_opts.delete(:group)
33
+ if (new_group && self.group != new_group)
34
+ @group = ([self.group].flatten + [new_group].flatten).compact.uniq.sort
35
+ end
36
+ @opts = (self.opts || {}).merge(new_opts)
37
+ end
38
+
39
+ def group_key() @group end
40
+
41
+ def gem_args_string
42
+ args = ["'#{@name}'"]
43
+ args << "'#{@version}'" if @version
44
+ @opts.each do |name,value|
45
+ args << ":#{name}=>#{value.inspect}"
46
+ end
47
+ args.join(', ')
48
+ end
49
+ end
50
+
51
+ @geminfo = {}
52
+
53
+ class << self
54
+ # add(name, version, opts={})
55
+ def add(name, *args)
56
+ name = name.to_s
57
+ version = args.first && !args.first.is_a?(Hash) ? args.shift : nil
58
+ opts = args.first && args.first.is_a?(Hash) ? args.shift : {}
59
+ @geminfo[name] = (@geminfo[name] || GemInfo.new(name)).tap do |info|
60
+ info.version = version if version
61
+ info.opts = opts
62
+ end
63
+ end
64
+
65
+ def write
66
+ File.open('Gemfile', 'a') do |file|
67
+ file.puts
68
+ grouped_gem_names.sort.each do |group, gem_names|
69
+ indent = ""
70
+ unless group.empty?
71
+ file.puts "group :#{group.join(', :')} do" unless group.empty?
72
+ indent=" "
73
+ end
74
+ gem_names.sort.each do |gem_name|
75
+ file.puts "#{indent}gem #{@geminfo[gem_name].gem_args_string}"
76
+ end
77
+ file.puts "end" unless group.empty?
78
+ file.puts
79
+ end
80
+ end
81
+ end
82
+
83
+ private
84
+ #returns {group=>[...gem names...]}, ie {[:development, :test]=>['rspec-rails', 'mocha'], :assets=>[], ...}
85
+ def grouped_gem_names
86
+ {}.tap do |_groups|
87
+ @geminfo.each do |gem_name, geminfo|
88
+ (_groups[geminfo.group_key] ||= []).push(gem_name)
89
+ end
90
+ end
91
+ end
92
+ end
93
+ end
94
+ def add_gem(*all) Gemfile.add(*all); end
95
+
96
+ @recipes = <%= resolve_recipes.map(&:key).inspect %>
97
+ @prefs = <%= resolve_preferences %>
98
+ @gems = <%= resolve_gems %>
99
+ @diagnostics_recipes = <%= resolve_diagnostics_recipes %>
100
+ @diagnostics_prefs = <%= resolve_diagnostics_prefs %>
101
+ diagnostics = {}
102
+
103
+ # ><%= ' templates/helpers.erb '.center(75,'-').chomp %>start<
104
+ <%= render('helpers').chomp %>
105
+ # ><%= ' templates/helpers.erb '.center(75,'-').chomp %>end<
106
+
107
+ say_wizard("\033[1m\033[36m" + "" + "\033[0m")
108
+
109
+ say_wizard("\033[1m\033[36m" + ' _____ _ _' + "\033[0m")
110
+ say_wizard("\033[1m\033[36m" + "| __ \\ \(_\) | /\\" + "\033[0m")
111
+ say_wizard("\033[1m\033[36m" + "| |__) |__ _ _| |___ / \\ _ __ _ __ ___" + "\033[0m")
112
+ say_wizard("\033[1m\033[36m" + "| _ /\/ _` | | / __| / /\\ \\ | \'_ \| \'_ \\/ __|" + "\033[0m")
113
+ say_wizard("\033[1m\033[36m" + "| | \\ \\ (_| | | \\__ \\/ ____ \\| |_) | |_) \\__ \\" + "\033[0m")
114
+ say_wizard("\033[1m\033[36m" + "|_| \\_\\__,_|_|_|___/_/ \\_\\ .__/| .__/|___/" + "\033[0m")
115
+ say_wizard("\033[1m\033[36m" + " \| \| \| \|" + "\033[0m")
116
+ say_wizard("\033[1m\033[36m" + " \| \| \| \|" + "\033[0m")
117
+ say_wizard("\033[1m\033[36m" + '' + "\033[0m")
118
+ say_wizard("\033[1m\033[36m" + "Rails Composer, open source, supported by subscribers." + "\033[0m")
119
+ say_wizard("\033[1m\033[36m" + "Please join RailsApps to support development of Rails Composer." + "\033[0m")
120
+ say_wizard("Need help? Ask on Stack Overflow with the tag \'railsapps.\'")
121
+ say_wizard("Your new application will contain diagnostics in its README file.")
122
+
123
+ if diagnostics_recipes.sort.include? recipes.sort
124
+ diagnostics[:recipes] = 'success'
125
+ else
126
+ diagnostics[:recipes] = 'fail'
127
+ end
128
+
129
+ # this application template only supports Rails version 4.1 and newer
130
+ case Rails::VERSION::MAJOR.to_s
131
+ when "3"
132
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported. Use Rails 4.1 or newer."
133
+ raise StandardError.new "Rails #{Rails::VERSION::STRING} is not supported. Use Rails 4.1 or newer."
134
+ when "4"
135
+ case Rails::VERSION::MINOR.to_s
136
+ when "0"
137
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported. Use Rails 4.1 or newer."
138
+ raise StandardError.new "Rails #{Rails::VERSION::STRING} is not supported. Use Rails 4.1 or newer."
139
+ end
140
+ else
141
+ say_wizard "You are using Rails version #{Rails::VERSION::STRING} which is not supported. Use Rails 4.1 or newer."
142
+ raise StandardError.new "Rails #{Rails::VERSION::STRING} is not supported. Use Rails 4.1 or newer."
143
+ end
144
+
145
+ # >---------------------------[ Autoload Modules/Classes ]-----------------------------<
146
+
147
+ inject_into_file 'config/application.rb', :after => 'config.autoload_paths += %W(#{config.root}/extras)' do <<-'RUBY'
148
+
149
+ config.autoload_paths += %W(#{config.root}/lib)
150
+ RUBY
151
+ end
152
+
153
+ # >---------------------------------[ Recipes ]----------------------------------<
154
+ <% resolve_recipes.each do |recipe| %>
155
+ <%= render('recipe', recipe.get_binding).chomp %>
156
+ <% end
157
+ %>
158
+
159
+ # >-----------------------------[ Final Gemfile Write ]------------------------------<
160
+ Gemfile.write
161
+
162
+ # >---------------------------------[ Diagnostics ]----------------------------------<
163
+
164
+ # remove prefs which are diagnostically irrelevant
165
+ redacted_prefs = prefs.clone
166
+ redacted_prefs.delete(:ban_spiders)
167
+ redacted_prefs.delete(:better_errors)
168
+ redacted_prefs.delete(:pry)
169
+ redacted_prefs.delete(:dev_webserver)
170
+ redacted_prefs.delete(:git)
171
+ redacted_prefs.delete(:github)
172
+ redacted_prefs.delete(:jsruntime)
173
+ redacted_prefs.delete(:local_env_file)
174
+ redacted_prefs.delete(:main_branch)
175
+ redacted_prefs.delete(:prelaunch_branch)
176
+ redacted_prefs.delete(:prod_webserver)
177
+ redacted_prefs.delete(:quiet_assets)
178
+ redacted_prefs.delete(:rvmrc)
179
+ redacted_prefs.delete(:templates)
180
+
181
+ if diagnostics_prefs.include? redacted_prefs
182
+ diagnostics[:prefs] = 'success'
183
+ else
184
+ diagnostics[:prefs] = 'fail'
185
+ end
186
+
187
+ <% if custom_code? %># >-----------------------------[ Custom Code ]-------------------------------<
188
+
189
+ <%= custom_code
190
+ %><% end
191
+ %>@current_recipe = nil
192
+
193
+ # >-----------------------------[ Run 'Bundle Install' ]-------------------------------<
194
+
195
+ say_wizard "Installing Bundler (in case it is not installed)."
196
+ run 'gem install bundler'
197
+ say_wizard "Installing gems. This will take a while."
198
+ run 'bundle install --without production'
199
+ say_wizard "Updating gem paths."
200
+ Gem.clear_paths
201
+ # >-----------------------------[ Run 'stage_two' Callbacks ]-------------------------------<
202
+
203
+ say_wizard "Stage Two (running recipe 'stage_two' callbacks)."
204
+ if prefer :templates, 'haml'
205
+ say_wizard "importing html2haml conversion tool"
206
+ require 'html2haml'
207
+ end
208
+ if prefer :templates, 'slim'
209
+ say_wizard "importing html2haml and haml2slim conversion tools"
210
+ require 'html2haml'
211
+ require 'haml2slim'
212
+ end
213
+ @after_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; puts @current_recipe; b[1].call}
214
+
215
+ # >-----------------------------[ Run 'stage_three' Callbacks ]-------------------------------<
216
+
217
+ @current_recipe = nil
218
+ say_wizard "Stage Three (running recipe 'stage_three' callbacks)."
219
+ @stage_three_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; puts @current_recipe; b[1].call}
220
+
221
+ # >-----------------------------[ Run 'stage_four' Callbacks ]-------------------------------<
222
+
223
+ @current_recipe = nil
224
+ say_wizard "Stage Four (running recipe 'stage_four' callbacks)."
225
+ @stage_four_blocks.each{|b| config = @configs[b[0]] || {}; @current_recipe = b[0]; puts @current_recipe; b[1].call}
226
+
227
+ @current_recipe = nil
228
+ say_wizard("Your new application will contain diagnostics in its README file.")
229
+ say_wizard("When reporting an issue on GitHub, include the README diagnostics.")
230
+ say_wizard "Finished running the redmint_composer app template."
231
+ say_wizard "Your new Rails app is ready. Time to run 'bundle install'."
@@ -0,0 +1,13 @@
1
+ # ><%= ' templates/recipe.erb '.center(75,'-').chomp %>start<
2
+ # ><%= "[ #{name} ]".center(75,'-').chomp %><
3
+ @current_recipe = "<%= key %>"
4
+ @before_configs["<%= key %>"].call if @before_configs["<%= key %>"]
5
+ say_recipe '<%= name %>'
6
+ <%=
7
+ config.compile + "\n" if config
8
+ %>@configs[@current_recipe] = config
9
+ # ><%= " recipes/#{name}.rb ".center(75,'-').chomp %>start<
10
+
11
+ <%= template %>
12
+ # ><%= " recipes/#{name}.rb ".center(75,'-').chomp %>end<
13
+ # ><%= ' templates/recipe.erb '.center(75,'-').chomp %>end<
@@ -0,0 +1,3 @@
1
+ module RailsWizard
2
+ VERSION = "3.0.44"
3
+ end
metadata ADDED
@@ -0,0 +1,201 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: redmint_composer
3
+ version: !ruby/object:Gem::Version
4
+ version: '2.3'
5
+ platform: ruby
6
+ authors:
7
+ - Daniel Kehoe
8
+ - Adrián Escat
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2015-10-30 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: i18n
16
+ requirement: !ruby/object:Gem::Requirement
17
+ requirements:
18
+ - - "~>"
19
+ - !ruby/object:Gem::Version
20
+ version: '0.6'
21
+ type: :runtime
22
+ prerelease: false
23
+ version_requirements: !ruby/object:Gem::Requirement
24
+ requirements:
25
+ - - "~>"
26
+ - !ruby/object:Gem::Version
27
+ version: '0.6'
28
+ - !ruby/object:Gem::Dependency
29
+ name: activesupport
30
+ requirement: !ruby/object:Gem::Requirement
31
+ requirements:
32
+ - - "~>"
33
+ - !ruby/object:Gem::Version
34
+ version: '4.0'
35
+ type: :runtime
36
+ prerelease: false
37
+ version_requirements: !ruby/object:Gem::Requirement
38
+ requirements:
39
+ - - "~>"
40
+ - !ruby/object:Gem::Version
41
+ version: '4.0'
42
+ - !ruby/object:Gem::Dependency
43
+ name: thor
44
+ requirement: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - "~>"
47
+ - !ruby/object:Gem::Version
48
+ version: '0.18'
49
+ type: :runtime
50
+ prerelease: false
51
+ version_requirements: !ruby/object:Gem::Requirement
52
+ requirements:
53
+ - - "~>"
54
+ - !ruby/object:Gem::Version
55
+ version: '0.18'
56
+ - !ruby/object:Gem::Dependency
57
+ name: rake
58
+ requirement: !ruby/object:Gem::Requirement
59
+ requirements:
60
+ - - "~>"
61
+ - !ruby/object:Gem::Version
62
+ version: '10.1'
63
+ type: :runtime
64
+ prerelease: false
65
+ version_requirements: !ruby/object:Gem::Requirement
66
+ requirements:
67
+ - - "~>"
68
+ - !ruby/object:Gem::Version
69
+ version: '10.1'
70
+ - !ruby/object:Gem::Dependency
71
+ name: rspec
72
+ requirement: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - "~>"
75
+ - !ruby/object:Gem::Version
76
+ version: '2.14'
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: !ruby/object:Gem::Requirement
80
+ requirements:
81
+ - - "~>"
82
+ - !ruby/object:Gem::Version
83
+ version: '2.14'
84
+ - !ruby/object:Gem::Dependency
85
+ name: mg
86
+ requirement: !ruby/object:Gem::Requirement
87
+ requirements:
88
+ - - "~>"
89
+ - !ruby/object:Gem::Version
90
+ version: '0.0'
91
+ - - ">="
92
+ - !ruby/object:Gem::Version
93
+ version: 0.0.8
94
+ type: :development
95
+ prerelease: false
96
+ version_requirements: !ruby/object:Gem::Requirement
97
+ requirements:
98
+ - - "~>"
99
+ - !ruby/object:Gem::Version
100
+ version: '0.0'
101
+ - - ">="
102
+ - !ruby/object:Gem::Version
103
+ version: 0.0.8
104
+ description: A gem with recipes to create Rails application templates you can use
105
+ to generate Rails starter apps. FORK of rails_app_composer gem
106
+ email:
107
+ - daniel@danielkehoe.com
108
+ executables:
109
+ - redmint_composer
110
+ extensions: []
111
+ extra_rdoc_files: []
112
+ files:
113
+ - README.textile
114
+ - bin/redmint_composer
115
+ - lib/rails_wizard.rb
116
+ - lib/rails_wizard/command.rb
117
+ - lib/rails_wizard/config.rb
118
+ - lib/rails_wizard/diagnostics.rb
119
+ - lib/rails_wizard/recipe.rb
120
+ - lib/rails_wizard/recipes.rb
121
+ - lib/rails_wizard/template.rb
122
+ - recipes/admin.rb
123
+ - recipes/analytics.rb
124
+ - recipes/core.rb
125
+ - recipes/deployment.rb
126
+ - recipes/devise.rb
127
+ - recipes/email.rb
128
+ - recipes/email_dev.rb
129
+ - recipes/example.rb
130
+ - recipes/extras.rb
131
+ - recipes/frontend.rb
132
+ - recipes/gems.rb
133
+ - recipes/git.rb
134
+ - recipes/init.rb
135
+ - recipes/learn_rails.rb
136
+ - recipes/locale.rb
137
+ - recipes/omniauth.rb
138
+ - recipes/pages.rb
139
+ - recipes/rails_bootstrap.rb
140
+ - recipes/rails_devise.rb
141
+ - recipes/rails_devise_pundit.rb
142
+ - recipes/rails_devise_roles.rb
143
+ - recipes/rails_foundation.rb
144
+ - recipes/rails_mailinglist_activejob.rb
145
+ - recipes/rails_omniauth.rb
146
+ - recipes/rails_signup_download.rb
147
+ - recipes/rails_stripe_checkout.rb
148
+ - recipes/rails_stripe_coupons.rb
149
+ - recipes/rails_stripe_membership_saas.rb
150
+ - recipes/railsapps.rb
151
+ - recipes/readme.rb
152
+ - recipes/roles.rb
153
+ - recipes/setup.rb
154
+ - recipes/tests.rb
155
+ - spec/rails_wizard/config_spec.rb
156
+ - spec/rails_wizard/recipe_spec.rb
157
+ - spec/rails_wizard/recipes/sanity_spec.rb
158
+ - spec/rails_wizard/recipes_spec.rb
159
+ - spec/rails_wizard/template_spec.rb
160
+ - spec/spec_helper.rb
161
+ - spec/support/rails_directory.rb
162
+ - spec/support/template_runner.rb
163
+ - spec/test_recipes/test_recipe_in_file.rb
164
+ - templates/helpers.erb
165
+ - templates/layout.erb
166
+ - templates/recipe.erb
167
+ - version.rb
168
+ homepage: https://github.com/adrianescat/redmint_composer
169
+ licenses:
170
+ - MIT
171
+ metadata: {}
172
+ post_install_message:
173
+ rdoc_options: []
174
+ require_paths:
175
+ - lib
176
+ required_ruby_version: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - ">="
179
+ - !ruby/object:Gem::Version
180
+ version: '0'
181
+ required_rubygems_version: !ruby/object:Gem::Requirement
182
+ requirements:
183
+ - - ">="
184
+ - !ruby/object:Gem::Version
185
+ version: '0'
186
+ requirements: []
187
+ rubyforge_project: redmint_composer
188
+ rubygems_version: 2.4.8
189
+ signing_key:
190
+ specification_version: 4
191
+ summary: A version of the RailsWizard gem with custom recipes for Rails starter apps.
192
+ test_files:
193
+ - spec/test_recipes/test_recipe_in_file.rb
194
+ - spec/spec_helper.rb
195
+ - spec/support/rails_directory.rb
196
+ - spec/support/template_runner.rb
197
+ - spec/rails_wizard/recipes/sanity_spec.rb
198
+ - spec/rails_wizard/template_spec.rb
199
+ - spec/rails_wizard/config_spec.rb
200
+ - spec/rails_wizard/recipes_spec.rb
201
+ - spec/rails_wizard/recipe_spec.rb