Class: Permadeps::Generators::InstallGenerator
- Inherits:
-
Rails::Generators::Base
- Object
- Rails::Generators::Base
- Permadeps::Generators::InstallGenerator
- Defined in:
- lib/generators/permadeps/install/install_generator.rb
Instance Method Summary collapse
- #copy_config_files ⇒ Object
- #copy_initializers ⇒ Object
- #copy_jobs ⇒ Object
- #copy_tasks ⇒ Object
- #generate_binstubs ⇒ Object
- #insert_engines ⇒ Object
- #run_generators ⇒ Object
- #run_migrations ⇒ Object
- #setup_freezolite_gem ⇒ Object
-
#setup_good_job_gem ⇒ Object
rubocop:disable Metrics/MethodLength.
- #setup_i18n_tasks_gem ⇒ Object
Instance Method Details
#copy_config_files ⇒ Object
6 7 8 9 10 11 12 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 6 def copy_config_files copy_file '.annotaterb.yml', '.annotaterb.yml' copy_file '.better-html.yml', '.better-html.yml' copy_file '.env.example', '.env.example' copy_file '.erb-lint.yml', '.erb-lint.yml' copy_file '.rubocop.yml', '.rubocop.yml' end |
#copy_initializers ⇒ Object
14 15 16 17 18 19 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 14 def copy_initializers copy_file 'initializers/better_html.rb', 'config/initializers/better_html.rb' copy_file 'initializers/blazer.rb', 'config/initializers/blazer.rb' copy_file 'initializers/rack_mini_profiler.rb', 'config/initializers/rack_mini_profiler.rb' copy_file 'initializers/rails_performance.rb', 'config/initializers/rails_performance.rb' end |
#copy_jobs ⇒ Object
21 22 23 24 25 26 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 21 def copy_jobs copy_file 'jobs/capture_query_stats_job.rb', 'app/jobs/capture_query_stats_job.rb' copy_file 'jobs/capture_space_stats_job.rb', 'app/jobs/capture_space_stats_job.rb' copy_file 'jobs/clean_query_stats_job.rb', 'app/jobs/clean_query_stats_job.rb' copy_file 'jobs/clean_space_stats_job.rb', 'app/jobs/clean_space_stats_job.rb' end |
#copy_tasks ⇒ Object
28 29 30 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 28 def copy_tasks copy_file 'tasks/annotate_rb.rake', 'lib/tasks/annotate_rb.rake' end |
#generate_binstubs ⇒ Object
43 44 45 46 47 48 49 50 51 52 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 43 def generate_binstubs run 'bundle binstub bundler-audit' run 'bundle binstub erb-formatter' run 'bundle binstub erb_lint' run 'bundle binstub i18n-tasks' run 'bundle binstub ruby_audit' remove_file 'bin/bundle-audit' remove_file 'bin/erb-format' end |
#insert_engines ⇒ Object
106 107 108 109 110 111 112 113 114 115 116 117 118 119 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 106 def insert_engines insert_into_file 'config/routes.rb', before: /^end/ do "\n # TODO: Uncomment the following lines to mount the engines.\n # authenticate :user, ->(user) { user.admin? } do\n # mount Blazer::Engine, at: 'rails/blazer'\n # mount GoodJob::Engine, at: 'rails/good_job'\n # mount PgHero::Engine, at: 'rails/pghero'\n # mount RailsPerformance::Engine, at: 'rails/performance'\n # end\n RUBY\n end\nend\n" |
#run_generators ⇒ Object
32 33 34 35 36 37 38 39 40 41 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 32 def run_generators generate 'ahoy:install' generate 'blazer:install' generate 'bullet:install' if Rails.gem_version < Gem::Version.new('8.0.0.alpha') generate 'good_job:install' generate 'notable:requests' generate 'notable:jobs' generate 'pghero:query_stats' generate 'pghero:space_stats' end |
#run_migrations ⇒ Object
121 122 123 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 121 def run_migrations rails_command 'db:migrate' end |
#setup_freezolite_gem ⇒ Object
94 95 96 97 98 99 100 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 94 def setup_freezolite_gem insert_into_file( 'config/application.rb', "\n\nrequire 'freezolite/auto'", after: 'Bundler.require(*Rails.groups)' ) end |
#setup_good_job_gem ⇒ Object
rubocop:disable Metrics/MethodLength
54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 54 def setup_good_job_gem # rubocop:disable Metrics/MethodLength append_to_file 'Procfile.dev', "worker: bundle exec good_job start\n" gsub_file( 'config/environments/production.rb', '# config.active_job.queue_adapter = :resque', 'config.active_job.queue_adapter = :good_job' ) insert_into_file 'config/environments/production.rb', before: /^end/ do "\n config.good_job.enable_cron = true\n\n config.good_job.cron = {\n capture_space_stats: {\ncron: '*/5 * * * *',\nclass: 'CaptureSpaceStatsJob',\ndescription: 'Capture PgHero space statistics every 5 minutes'\n },\n clean_space_stats: {\ncron: '0 0 * * 5',\nclass: 'CleanSpaceStatsJob',\ndescription: 'Clean PgHero space statistics every Friday midnight'\n },\n capture_query_stats: {\ncron: '*/5 * * * *',\nclass: 'CaptureQueryStatsJob',\ndescription: 'Capture PgHero query statistics every 5 minutes'\n },\n clean_query_stats: {\ncron: '0 0 * * 5',\nclass: 'CleanQueryStatsJob',\ndescription: 'Clean PgHero query statistics every Friday midnight'\n }\n }\n RUBY\n end\nend\n" |
#setup_i18n_tasks_gem ⇒ Object
102 103 104 |
# File 'lib/generators/permadeps/install/install_generator.rb', line 102 def setup_i18n_tasks_gem run 'cp $(i18n-tasks gem-path)/templates/config/i18n-tasks.yml config/' end |