raygun 0.0.11 → 0.0.13

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 (132) hide show
  1. data/.gitignore +3 -3
  2. data/.rbenv-version +1 -1
  3. data/README.md +2 -9
  4. data/Rakefile +1 -1
  5. data/TODO.md +0 -5
  6. data/app_prototype/.gitignore +15 -0
  7. data/app_prototype/.rspec +1 -0
  8. data/app_prototype/.rvmrc +1 -0
  9. data/{templates/Gemfile_customized → app_prototype/Gemfile} +1 -0
  10. data/{templates/Guardfile_customized → app_prototype/Guardfile} +6 -0
  11. data/{templates → app_prototype}/Procfile +0 -0
  12. data/{templates/README.md.erb → app_prototype/README.md} +0 -0
  13. data/app_prototype/Rakefile +10 -0
  14. data/app_prototype/app/assets/javascripts/application.js +16 -0
  15. data/app_prototype/app/assets/javascripts/users.js.coffee +3 -0
  16. data/{templates/_app → app_prototype/app}/assets/stylesheets/_footer.less +0 -0
  17. data/{templates/_app → app_prototype/app}/assets/stylesheets/application.css.less +0 -0
  18. data/{templates/_app → app_prototype/app}/controllers/application_controller.rb +1 -0
  19. data/{templates/_app → app_prototype/app}/controllers/password_resets_controller.rb +0 -0
  20. data/{templates/_app → app_prototype/app}/controllers/registrations_controller.rb +2 -0
  21. data/{templates/_app → app_prototype/app}/controllers/user_sessions_controller.rb +1 -1
  22. data/app_prototype/app/controllers/users_controller.rb +41 -0
  23. data/{templates/_app → app_prototype/app}/helpers/application_helper.rb +0 -0
  24. data/app_prototype/app/helpers/users_helper.rb +2 -0
  25. data/app_prototype/app/mailers/.gitkeep +0 -0
  26. data/{templates/_app → app_prototype/app}/mailers/user_mailer.rb +0 -0
  27. data/app_prototype/app/models/.gitkeep +0 -0
  28. data/{templates/_app → app_prototype/app}/models/ability.rb +0 -0
  29. data/{templates/_app → app_prototype/app}/models/user.rb +0 -0
  30. data/{templates/_app → app_prototype/app}/models/user_session.rb +0 -0
  31. data/{templates/_app/views/layouts/application.html.slim.erb → app_prototype/app/views/layouts/application.html.slim} +2 -2
  32. data/{templates/_app → app_prototype/app}/views/password_resets/edit.html.slim +0 -0
  33. data/{templates/_app → app_prototype/app}/views/password_resets/new.html.slim +0 -0
  34. data/{templates/_app → app_prototype/app}/views/registrations/new.html.slim +0 -0
  35. data/{templates/_app → app_prototype/app}/views/user_mailer/activation_needed_email.html.erb +0 -0
  36. data/{templates/_app → app_prototype/app}/views/user_mailer/activation_needed_email.text.erb +0 -0
  37. data/{templates/_app → app_prototype/app}/views/user_mailer/activation_success_email.html.erb +0 -0
  38. data/{templates/_app → app_prototype/app}/views/user_mailer/activation_success_email.text.erb +0 -0
  39. data/{templates/_app → app_prototype/app}/views/user_mailer/reset_password_email.html.erb +0 -0
  40. data/{templates/_app → app_prototype/app}/views/user_mailer/reset_password_email.text.erb +0 -0
  41. data/{templates/_app → app_prototype/app}/views/user_sessions/new.html.slim +0 -0
  42. data/app_prototype/app/views/users/_form.html.slim +12 -0
  43. data/app_prototype/app/views/users/edit.html.slim +5 -0
  44. data/app_prototype/app/views/users/index.html.slim +26 -0
  45. data/app_prototype/app/views/users/new.html.slim +4 -0
  46. data/app_prototype/app/views/users/show.html.slim +17 -0
  47. data/app_prototype/config.ru +8 -0
  48. data/app_prototype/config/application.rb +77 -0
  49. data/app_prototype/config/boot.rb +6 -0
  50. data/{templates/_config/database.yml.erb → app_prototype/config/database.yml} +2 -2
  51. data/app_prototype/config/environment.rb +5 -0
  52. data/app_prototype/config/environments/acceptance.rb +69 -0
  53. data/app_prototype/config/environments/development.rb +39 -0
  54. data/app_prototype/config/environments/production.rb +69 -0
  55. data/app_prototype/config/environments/test.rb +40 -0
  56. data/app_prototype/config/initializers/backtrace_silencers.rb +7 -0
  57. data/app_prototype/config/initializers/inflections.rb +15 -0
  58. data/app_prototype/config/initializers/mime_types.rb +5 -0
  59. data/app_prototype/config/initializers/secret_token.rb +7 -0
  60. data/app_prototype/config/initializers/session_store.rb +8 -0
  61. data/app_prototype/config/initializers/simple_form.rb +142 -0
  62. data/app_prototype/config/initializers/simple_form_bootstrap.rb +45 -0
  63. data/app_prototype/config/initializers/sorcery.rb +398 -0
  64. data/app_prototype/config/initializers/wrap_parameters.rb +14 -0
  65. data/app_prototype/config/locales/en.yml +5 -0
  66. data/app_prototype/config/locales/simple_form.en.yml +26 -0
  67. data/app_prototype/config/routes.rb +21 -0
  68. data/app_prototype/db/migrate/20121128215324_sorcery_core.rb +17 -0
  69. data/app_prototype/db/migrate/20121128215325_sorcery_brute_force_protection.rb +13 -0
  70. data/app_prototype/db/migrate/20121128215326_sorcery_activity_logging.rb +17 -0
  71. data/app_prototype/db/migrate/20121128215327_sorcery_user_activation.rb +17 -0
  72. data/app_prototype/db/migrate/20121128215328_sorcery_remember_me.rb +15 -0
  73. data/app_prototype/db/migrate/20121128215329_sorcery_reset_password.rb +17 -0
  74. data/app_prototype/db/migrate/20121128215330_sorcery_external.rb +14 -0
  75. data/app_prototype/db/migrate/20121128215337_add_admin_to_users.rb +5 -0
  76. data/{templates/_db → app_prototype/db}/sample_data.rb +0 -0
  77. data/app_prototype/db/schema.rb +53 -0
  78. data/app_prototype/db/seeds.rb +7 -0
  79. data/app_prototype/lib/assets/.gitkeep +0 -0
  80. data/app_prototype/lib/tasks/.gitkeep +0 -0
  81. data/{templates/_lib → app_prototype/lib}/tasks/coverage.rake +0 -0
  82. data/{templates/_lib → app_prototype/lib}/tasks/db.rake +0 -0
  83. data/{templates/_lib → app_prototype/lib}/tasks/spec.rake +0 -0
  84. data/{templates/_lib → app_prototype/lib}/templates/rails/scaffold_controller/controller.rb +0 -0
  85. data/{templates/_lib → app_prototype/lib}/templates/rspec/scaffold/controller_spec.rb +1 -1
  86. data/{templates/_lib → app_prototype/lib}/templates/slim/scaffold/_form.html.slim +0 -0
  87. data/{templates/_lib → app_prototype/lib}/templates/slim/scaffold/edit.html.slim +0 -0
  88. data/{templates/_lib → app_prototype/lib}/templates/slim/scaffold/index.html.slim +0 -0
  89. data/{templates/_lib → app_prototype/lib}/templates/slim/scaffold/new.html.slim +0 -0
  90. data/{templates/_lib → app_prototype/lib}/templates/slim/scaffold/show.html.slim +0 -0
  91. data/app_prototype/log/.gitkeep +0 -0
  92. data/app_prototype/public/404.html +26 -0
  93. data/app_prototype/public/422.html +26 -0
  94. data/app_prototype/public/500.html +25 -0
  95. data/app_prototype/public/favicon.ico +0 -0
  96. data/{templates/_public/index.html.erb → app_prototype/public/index.html} +2 -2
  97. data/app_prototype/public/robots.txt +5 -0
  98. data/app_prototype/script/rails +6 -0
  99. data/app_prototype/spec/controllers/user_sessions_controller_spec.rb +42 -0
  100. data/app_prototype/spec/controllers/users_controller_spec.rb +150 -0
  101. data/{templates/_spec → app_prototype/spec}/factories/users.rb +0 -0
  102. data/{templates/_spec → app_prototype/spec}/features/user_sessions_spec.rb +5 -1
  103. data/app_prototype/spec/helpers/users_helper_spec.rb +15 -0
  104. data/{templates/_spec → app_prototype/spec}/javascripts/example_spec.js.coffee +0 -0
  105. data/{templates/_spec → app_prototype/spec}/javascripts/spec.css +0 -0
  106. data/{templates/_spec → app_prototype/spec}/javascripts/spec.js.coffee +0 -0
  107. data/{templates/_spec → app_prototype/spec}/mailers/user_mailer_spec.rb +0 -0
  108. data/{templates/_spec → app_prototype/spec}/models/ability_spec.rb +0 -0
  109. data/{templates/_spec → app_prototype/spec}/models/user_spec.rb +0 -0
  110. data/app_prototype/spec/spec_helper.rb +84 -0
  111. data/{templates/_spec → app_prototype/spec}/support/accept_values.rb +0 -0
  112. data/{templates/_spec → app_prototype/spec}/support/factory_girl.rb +0 -0
  113. data/{templates/_spec → app_prototype/spec}/support/sorcery.rb +0 -0
  114. data/{templates/_spec → app_prototype/spec}/support/user_sessions_feature_helper.rb +0 -0
  115. data/app_prototype/spec/views/users/edit.html.slim_spec.rb +20 -0
  116. data/app_prototype/spec/views/users/index.html.slim_spec.rb +23 -0
  117. data/app_prototype/spec/views/users/new.html.slim_spec.rb +20 -0
  118. data/app_prototype/spec/views/users/show.html.slim_spec.rb +17 -0
  119. data/app_prototype/vendor/assets/javascripts/.gitkeep +0 -0
  120. data/app_prototype/vendor/assets/stylesheets/.gitkeep +0 -0
  121. data/app_prototype/vendor/plugins/.gitkeep +0 -0
  122. data/bin/raygun +48 -6
  123. data/lib/raygun/version.rb +1 -1
  124. data/raygun.gemspec +0 -3
  125. metadata +118 -108
  126. data/lib/raygun/actions.rb +0 -26
  127. data/lib/raygun/app_builder.rb +0 -362
  128. data/lib/raygun/generators/app_generator.rb +0 -188
  129. data/lib/raygun/helpers/ruby_version_helpers.rb +0 -52
  130. data/lib/raygun/raygun.rb +0 -11
  131. data/templates/rbenv-version.erb +0 -1
  132. data/templates/rvmrc.erb +0 -1
@@ -1,26 +0,0 @@
1
- module Raygun
2
- module Actions
3
- #def concat_file(source, destination)
4
- # contents = IO.read(find_in_source_paths(source))
5
- # append_file destination, contents
6
- #end
7
- #
8
-
9
- def replace_in_file(relative_path, find, replace)
10
- path = File.join(destination_root, relative_path)
11
- contents = IO.read(path)
12
- unless contents.gsub!(find, replace)
13
- raise "#{find.inspect} not found in #{relative_path}"
14
- end
15
- File.open(path, "w") { |file| file.write(contents) }
16
- end
17
-
18
- def action_mailer_host(rails_env, host)
19
- inject_into_file(
20
- "config/environments/#{rails_env}.rb",
21
- "\n\n config.action_mailer.default_url_options = { :host => '#{host}' }",
22
- :before => "\nend"
23
- )
24
- end
25
- end
26
- end
@@ -1,362 +0,0 @@
1
- module Raygun
2
- class AppBuilder < Rails::AppBuilder
3
- include Raygun::Actions
4
-
5
- def readme
6
- template 'README.md.erb', 'README.md'
7
- end
8
-
9
- def replace_public_index
10
- template '_public/index.html.erb', 'public/index.html', force: true
11
- end
12
-
13
- def remove_rails_logo_image
14
- remove_file 'app/assets/images/rails.png'
15
- end
16
-
17
- def remove_application_layout
18
- remove_file 'app/views/layouts/application.html.erb'
19
- end
20
-
21
- def enable_factory_girl_syntax
22
- copy_file '_spec/support/factory_girl.rb', 'spec/support/factory_girl.rb'
23
- end
24
-
25
- def enable_threadsafe_mode
26
- uncomment_lines 'config/environments/production.rb', 'config.threadsafe!'
27
- end
28
-
29
- def initialize_on_precompile
30
- inject_into_file 'config/application.rb',
31
- "\n config.assets.initialize_on_precompile = false",
32
- after: 'config.assets.enabled = true'
33
- end
34
-
35
- def setup_acceptance_environment
36
- run 'cp config/environments/production.rb config/environments/acceptance.rb'
37
- end
38
-
39
- def create_application_layout
40
- template '_app/views/layouts/application.html.slim.erb',
41
- 'app/views/layouts/application.html.slim',
42
- force: true
43
- end
44
-
45
- def use_postgres_config_template
46
- template '_config/database.yml.erb', 'config/database.yml', force: true
47
- end
48
-
49
- def create_database
50
- bundle_command 'exec rake db:create'
51
- end
52
-
53
- def configure_rvm
54
- template 'rvmrc.erb', '.rvmrc', rvm_ruby: rvm_ruby
55
- end
56
-
57
- def configure_rbenv
58
- template 'rbenv-version.erb', '.rbenv-version', rbenv_ruby: rbenv_ruby
59
- end
60
-
61
- def configure_gemfile
62
- run 'gem install bundler'
63
- copy_file 'Gemfile_customized', 'Gemfile', force: true
64
- end
65
-
66
- def setup_generators
67
- directory '_lib/templates/rails', 'lib/templates/rails'
68
-
69
- %w(_form index show new edit).each do |view|
70
- template = "lib/templates/slim/scaffold/#{view}.html.slim"
71
- remove_file template
72
- copy_file "_lib/templates/slim/scaffold/#{view}.html.slim", template
73
- end
74
- end
75
-
76
- def configure_rspec
77
- generators_config = <<-RUBY
78
-
79
- config.generators do |generate|
80
- generate.stylesheets false
81
- #generate.helpers false
82
- generate.routing_specs false
83
- #generate.view_specs false
84
- end
85
-
86
- RUBY
87
- inject_into_class 'config/application.rb', 'Application', generators_config
88
-
89
- copy_file '_lib/templates/rspec/scaffold/controller_spec.rb',
90
- 'lib/templates/rspec/scaffold/controller_spec.rb'
91
- end
92
-
93
- def generate_rspec
94
- generate 'rspec:install'
95
- end
96
-
97
- def add_rspec_support
98
- shared_transaction = <<-RUBY
99
-
100
- # Forces all threads to share the same connection. This works on
101
- # Capybara because it starts the web server in a thread.
102
- #
103
- # http://blog.plataformatec.com.br/2011/12/three-tips-to-improve-the-performance-of-your-test-suite/
104
-
105
- class ActiveRecord::Base
106
- mattr_accessor :shared_connection
107
- @@shared_connection = nil
108
-
109
- def self.connection
110
- @@shared_connection || retrieve_connection
111
- end
112
- end
113
-
114
- ActiveRecord::Base.shared_connection = ActiveRecord::Base.connection
115
-
116
- # Turn down the logging while testing.
117
- Rails.logger.level = 4
118
- RUBY
119
-
120
- append_to_file 'spec/spec_helper.rb', shared_transaction
121
-
122
- copy_file '_spec/support/accept_values.rb', 'spec/support/accept_values.rb'
123
- end
124
-
125
- def add_js_testing
126
- directory '_spec/javascripts', 'spec/javascripts'
127
- copy_file '_lib/tasks/spec.rake', 'lib/tasks/spec.rake'
128
- end
129
-
130
- def configure_time_zone
131
- 'config/application.rb'.tap do |fn|
132
- #inject_into_file fn, ' config.active_record.default_timezone = :utc\n', after: "'Central Time (US & Canada)'\n"
133
- #uncomment_lines fn, 'config.time_zone'
134
- gsub_file fn, 'Central Time (US & Canada)', 'Pacific Time (US & Canada)'
135
- end
136
- end
137
-
138
- def configure_action_mailer
139
- action_mailer_host 'development', "#{app_name}.local"
140
- action_mailer_host 'test', "example.com"
141
- action_mailer_host 'acceptance', "acceptance.#{app_name}.com"
142
- action_mailer_host 'production', "#{app_name}.com"
143
- end
144
-
145
- def add_lib_to_load_path
146
- 'config/application.rb'.tap do |fn|
147
- gsub_file fn, '#{config.root}/extras', '#{config.root}/lib'
148
- uncomment_lines fn, 'config.autoload_paths'
149
- end
150
- end
151
-
152
- def setup_simple_form
153
- generate 'simple_form:install --bootstrap -s'
154
-
155
- replace_in_file 'config/initializers/simple_form.rb',
156
- %(# config.label_text = lambda { |label, required| "\#{required} \#{label}" }),
157
- %(config.label_text = lambda { |label, required| "\#{label}" })
158
- end
159
-
160
- def setup_authentication
161
- # User model
162
- generate 'scaffold user email:string name:string'
163
-
164
- remove_file 'app/models/user.rb'
165
- remove_file 'spec/factories/users.rb'
166
- remove_file 'spec/requests/users_spec.rb'
167
- create_users_migration = 'db/migrate/' + Dir.new('./db/migrate').entries.select { |e| e =~ /create_users/ }.first
168
- remove_file create_users_migration
169
-
170
- generate 'sorcery:install brute_force_protection activity_logging user_activation remember_me reset_password external'
171
-
172
- copy_file '_app/models/user.rb', 'app/models/user.rb', force: true
173
- copy_file '_spec/support/sorcery.rb', 'spec/support/sorcery.rb'
174
- copy_file '_spec/factories/users.rb', 'spec/factories/users.rb', force: true
175
- copy_file '_spec/models/user_spec.rb', 'spec/models/user_spec.rb', force: true
176
-
177
- gsub_file 'spec/controllers/users_controller_spec.rb', 'login_user build :user', 'login_user build :admin'
178
-
179
- inject_into_file 'app/controllers/users_controller.rb',
180
- "\n before_filter :require_login\n",
181
- after: "UsersController < ApplicationController\n"
182
-
183
- # User mailer (has to happen before sorcery config changes)
184
- generate 'mailer UserMailer activation_needed_email activation_success_email reset_password_email'
185
- copy_file '_app/mailers/user_mailer.rb', 'app/mailers/user_mailer.rb', force: true
186
- copy_file '_spec/mailers/user_mailer_spec.rb', 'spec/mailers/user_mailer_spec.rb', force: true
187
-
188
- %w(activation_needed_email activation_success_email reset_password_email).each do |fn|
189
- remove_file "app/views/user_mailer/#{fn}.text.slim"
190
-
191
- %w(html.erb text.erb).each do |ext|
192
- copy_file "_app/views/user_mailer/#{fn}.#{ext}", "app/views/user_mailer/#{fn}.#{ext}", force: true
193
- end
194
- end
195
-
196
- remove_dir 'spec/fixtures/user_mailer'
197
-
198
- # Patch sorcery configuration and migrations
199
- sorcery_core_migration = 'db/migrate/' + Dir.new('./db/migrate').entries.select { |e| e =~ /sorcery_core/ }.first
200
- inject_into_file sorcery_core_migration, " t.string :name\n", after: "create_table :users do |t|\n"
201
- comment_lines sorcery_core_migration, /^.* t.string :username.*$\n/
202
-
203
- 'config/initializers/sorcery.rb'.tap do |fn|
204
- replace_in_file fn, 'config.user_class = "User"', 'config.user_class = User'
205
- replace_in_file fn, '# user.username_attribute_names =', 'user.username_attribute_names = :email'
206
- replace_in_file fn, '# user.user_activation_mailer =', 'user.user_activation_mailer = UserMailer'
207
- replace_in_file fn, '# user.reset_password_mailer =', 'user.reset_password_mailer = UserMailer'
208
- #replace_in_file sorcery_rb, /# user.unlock_token_mailer =.*$/, 'user.unlock_token_mailer = UserMailer'
209
- end
210
-
211
- # Routes, controllers, helpers and views
212
- route "resources :password_resets, only: [:new, :create, :edit, :update]"
213
- route "match 'sign_up/:token/activate' => 'registrations#activate', via: :get"
214
- route "match 'sign_up' => 'registrations#create', via: :post"
215
- route "match 'sign_up' => 'registrations#new', via: :get"
216
- route "resources :registrations, only: [:new, :create, :activate]"
217
- route "resources :user_sessions, only: [:new, :create, :destroy]"
218
- route "match 'sign_out' => 'user_sessions#destroy', as: :sign_out"
219
- route "match 'sign_in' => 'user_sessions#new', as: :sign_in"
220
-
221
- copy_file '_app/controllers/application_controller.rb',
222
- 'app/controllers/application_controller.rb',
223
- force: true
224
-
225
- copy_file '_app/helpers/application_helper.rb',
226
- 'app/helpers/application_helper.rb',
227
- force: true
228
-
229
- copy_file '_app/models/user_session.rb',
230
- 'app/models/user_session.rb'
231
-
232
- copy_file '_app/controllers/user_sessions_controller.rb',
233
- 'app/controllers/user_sessions_controller.rb'
234
-
235
- copy_file '_app/views/user_sessions/new.html.slim',
236
- 'app/views/user_sessions/new.html.slim'
237
-
238
- copy_file '_spec/support/user_sessions_feature_helper.rb',
239
- 'spec/support/user_sessions_feature_helper.rb'
240
-
241
- copy_file '_spec/features/user_sessions_spec.rb',
242
- 'spec/features/user_sessions_spec.rb'
243
-
244
- copy_file '_app/controllers/registrations_controller.rb',
245
- 'app/controllers/registrations_controller.rb'
246
-
247
- directory '_app/views/registrations', 'app/views/registrations'
248
-
249
- copy_file '_app/controllers/password_resets_controller.rb',
250
- 'app/controllers/password_resets_controller.rb'
251
-
252
- directory '_app/views/password_resets', 'app/views/password_resets'
253
-
254
- copy_file '_app/views/password_resets/edit.html.slim',
255
- 'app/views/password_resets/edit.html.slim'
256
- end
257
-
258
- def setup_authorization
259
- generate 'migration add_admin_to_users admin:boolean'
260
-
261
- copy_file '_app/models/ability.rb', 'app/models/ability.rb'
262
- copy_file '_spec/models/ability_spec.rb', 'spec/models/ability_spec.rb'
263
-
264
- inject_into_file 'app/controllers/application_controller.rb',
265
- " check_authorization\n",
266
- after: "protect_from_forgery\n"
267
-
268
- append_to_file 'config/environments/test.rb', 'Sorcery::CryptoProviders::BCrypt.cost = 1'
269
- end
270
-
271
- def setup_simplecov
272
- copy_file '_lib/tasks/coverage.rake', 'lib/tasks/coverage.rake'
273
-
274
- coverage = <<-RUBY
275
- # Coverage must be enabled before the application is loaded.
276
- if ENV['COVERAGE']
277
- require 'simplecov'
278
-
279
- # Writes the coverage stat to a file to be used by Cane.
280
- class SimpleCov::Formatter::QualityFormatter
281
- def format(result)
282
- SimpleCov::Formatter::HTMLFormatter.new.format(result)
283
- File.open('coverage/covered_percent', 'w') do |f|
284
- f.puts result.source_files.covered_percent.to_f
285
- end
286
- end
287
- end
288
- SimpleCov.formatter = SimpleCov::Formatter::QualityFormatter
289
-
290
- SimpleCov.start do
291
- add_filter '/spec/'
292
- add_filter '/config/'
293
- add_filter '/vendor/'
294
- add_group 'Models', 'app/models'
295
- add_group 'Controllers', 'app/controllers'
296
- add_group 'Helpers', 'app/helpers'
297
- add_group 'Views', 'app/views'
298
- add_group 'Mailers', 'app/mailers'
299
- end
300
- end
301
-
302
- RUBY
303
-
304
- prepend_to_file 'spec/spec_helper.rb', coverage
305
- end
306
-
307
- def setup_default_rake_task
308
- append_file 'Rakefile' do
309
- "\ntask(:default).clear\ntask default: 'spec'"
310
- end
311
- end
312
-
313
- def setup_guard
314
- copy_file 'Guardfile_customized', 'Guardfile'
315
- bundle_command 'exec guard init jasmine'
316
- end
317
-
318
- def setup_logging
319
- inject_into_file 'config.ru',
320
- "\n# Disable buffering for real time logging (foreman and heroku).\n$stdout.sync = true\n\n",
321
- before: /run \w+::Application/
322
- end
323
-
324
- def setup_stylesheets
325
- remove_file 'app/assets/stylesheets/application.css'
326
- directory '_app/assets/stylesheets', 'app/assets/stylesheets'
327
- end
328
-
329
- def setup_javascripts
330
- inject_into_file 'app/assets/javascripts/application.js',
331
- "//= require twitter/bootstrap\n",
332
- after: "require jquery_ujs\n"
333
- end
334
-
335
- def copy_rake_tasks
336
- copy_file '_lib/tasks/db.rake', 'lib/tasks/db.rake'
337
- copy_file '_db/sample_data.rb', 'db/sample_data.rb'
338
- end
339
-
340
- def copy_procfile
341
- copy_file 'Procfile'
342
- end
343
-
344
- def remove_routes_comment_lines
345
- replace_in_file 'config/routes.rb', /Application\.routes\.draw do.*end/m, "Application.routes.draw do\nend"
346
- end
347
-
348
- def convert_to_19_hash_syntax
349
- original_destination_root = destination_root
350
- inside(Raygun::AppGenerator.launch_path) do
351
- run "find #{original_destination_root} -name '*.rb' | xargs hash_syntax -n"
352
- end
353
- end
354
-
355
- def consistent_quoting
356
- gsub_file 'config/application.rb', '"utf-8"', "'utf-8'"
357
- %w(acceptance production).each do |fn|
358
- gsub_file "config/environments/#{fn}.rb", '"X-Sendfile"', "'X-Sendfile'"
359
- end
360
- end
361
- end
362
- end
@@ -1,188 +0,0 @@
1
- module Raygun
2
- class AppGenerator < Rails::Generators::AppGenerator
3
- include Raygun::RubyVersionHelpers
4
-
5
- # set and get raygun launch path
6
- def self.launch_path(path=nil)
7
- @_launch_path = path if path
8
- @_launch_path
9
- end
10
-
11
- class_option :database, type: :string, aliases: '-d', default: 'postgresql',
12
- desc: "Preconfigure for selected database (options: #{DATABASES.join('/')})"
13
-
14
- class_option :skip_test_unit, type: :boolean, aliases: '-T', default: true,
15
- desc: "Skip Test::Unit files"
16
-
17
- def finish_template
18
- invoke :raygun_customization
19
- super
20
- end
21
-
22
- def raygun_customization
23
-
24
- with_ruby_version do
25
- invoke :remove_files_we_dont_need
26
- invoke :remove_routes_comment_lines
27
- invoke :setup_development_environment
28
- invoke :setup_production_environment
29
- invoke :setup_acceptance_environment
30
- #invoke :setup_staging_environment
31
- invoke :configure_ruby_version
32
- invoke :customize_gemfile
33
- invoke :setup_database
34
- invoke :setup_generators
35
- invoke :create_raygun_views
36
- invoke :configure_app
37
- invoke :setup_javascripts
38
- invoke :setup_stylesheets
39
- invoke :copy_miscellaneous_files
40
- end
41
-
42
- invoke :knits_and_picks
43
- invoke :outro
44
- end
45
-
46
- def remove_files_we_dont_need
47
- say "Removing unwanted files."
48
- build :remove_rails_logo_image
49
- build :remove_application_layout
50
- end
51
-
52
- def remove_routes_comment_lines
53
- build :remove_routes_comment_lines
54
- end
55
-
56
- def setup_development_environment
57
- say "Setting up the development environment."
58
- build :raise_delivery_errors
59
- build :enable_factory_girl_syntax
60
- end
61
-
62
- def setup_production_environment
63
- say "Setting up the production environment."
64
- build :enable_threadsafe_mode
65
- end
66
-
67
- def setup_acceptance_environment
68
- say "Setting up the acceptance environment."
69
- build :setup_acceptance_environment
70
- build :initialize_on_precompile
71
- end
72
-
73
- def configure_ruby_version
74
- if rvm_installed?
75
- say "Configuring RVM"
76
- build :configure_rvm
77
- else
78
- say "Configuring rbenv"
79
- build :configure_rbenv
80
- end
81
- end
82
-
83
- def customize_gemfile
84
- say "Customizing the Gemfile."
85
- build :configure_gemfile
86
- bundle_command 'install'
87
- end
88
-
89
- def setup_database
90
- say "Setting up database"
91
- build :use_postgres_config_template
92
- build :create_database
93
- end
94
-
95
- def setup_generators
96
- say "Installing custom view generator templates"
97
- build :setup_generators
98
- end
99
-
100
- def create_raygun_views
101
- say "Creating views and layouts"
102
- build :replace_public_index
103
- build :create_partials_directory
104
- #build :create_shared_flashes
105
- #build :create_shared_javascripts
106
- build :create_application_layout
107
- end
108
-
109
- def configure_app
110
- say "Configuring app"
111
-
112
- build :configure_rspec
113
- build :generate_rspec
114
- build :add_rspec_support
115
-
116
- build :add_js_testing
117
-
118
- build :setup_logging
119
- build :configure_time_zone
120
- build :configure_action_mailer
121
- build :add_lib_to_load_path
122
- build :setup_simple_form
123
- build :setup_authentication
124
- build :setup_authorization
125
- build :setup_simplecov
126
- build :setup_default_rake_task
127
- build :setup_guard
128
- end
129
-
130
- def setup_stylesheets
131
- say "Configuring stylesheets"
132
- build :setup_stylesheets
133
- end
134
-
135
- def setup_javascripts
136
- say "Configuring javascripts"
137
- build :setup_javascripts
138
- end
139
-
140
- def copy_miscellaneous_files
141
- say "Copying miscellaneous support files"
142
- build :copy_rake_tasks
143
- build :copy_procfile
144
- end
145
-
146
- def knits_and_picks
147
- say "Converting old hash syntax and fixing knit picks"
148
- build :convert_to_19_hash_syntax
149
- build :consistent_quoting
150
- end
151
-
152
- def outro
153
- say ""
154
- say "You're done! Next steps..."
155
- say ""
156
- say "# Prepare the database: schema and reference / sample data"
157
- say "$ cd #{ARGV[0]}"
158
- say "$ rake db:migrate db:seed db:sample_data"
159
- say ""
160
- say "# Run the specs (they should all pass)"
161
- say "$ rake"
162
- say ""
163
- say "# Load reference and sample data, then run the app and check things out"
164
- say "$ foreman start"
165
- say "$ open http://0.0.0.0:3000"
166
- say ""
167
- say "Enjoy your Carbon Five flavored Rails application!"
168
- end
169
-
170
- def run_bundle
171
- # Let's not: We'll bundle manually at the right spot
172
- end
173
-
174
- protected
175
-
176
- def get_builder_class
177
- Raygun::AppBuilder
178
- end
179
-
180
- # We want output from our bundle commands, overriding thor's implementation.
181
- def bundle_command(command)
182
- say_status :run, "bundle #{command}"
183
- cmd = "#{Gem.ruby} -rubygems #{Gem.bin_path('bundler', 'bundle')} #{command}"
184
- IO.popen(cmd) { |p| p.each { |f| puts f } }
185
- end
186
-
187
- end
188
- end