Class: Suspenders::AppGenerator
- Inherits:
-
Rails::Generators::AppGenerator
- Object
- Rails::Generators::AppGenerator
- Suspenders::AppGenerator
- Includes:
- ExitOnFailure
- Defined in:
- lib/suspenders/generators/app_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #configure_app ⇒ Object
- #copy_miscellaneous_files ⇒ Object
- #create_github_repo ⇒ Object
- #create_heroku_apps ⇒ Object
- #customize_gemfile ⇒ Object
- #finish_template ⇒ Object
- #generate_default ⇒ Object
- #generate_deployment_default ⇒ Object
- #generate_views ⇒ Object
- #leftovers ⇒ Object
- #outro ⇒ Object
- #remove_config_comment_lines ⇒ Object
- #remove_routes_comment_lines ⇒ Object
- #run_database_migrations ⇒ Object
- #setup_database ⇒ Object
- #setup_development_environment ⇒ Object
- #setup_production_environment ⇒ Object
- #setup_secret_token ⇒ Object
- #suspenders_customization ⇒ Object
Methods included from ExitOnFailure
Class Method Details
.banner ⇒ Object
189 190 191 |
# File 'lib/suspenders/generators/app_generator.rb', line 189 def self. "suspenders #{arguments.map(&:usage).join(" ")} [options]" end |
Instance Method Details
#configure_app ⇒ Object
104 105 106 107 108 109 |
# File 'lib/suspenders/generators/app_generator.rb', line 104 def configure_app say "Configuring app" build :configure_action_mailer build :configure_time_formats build :setup_default_rake_task end |
#copy_miscellaneous_files ⇒ Object
133 134 135 136 |
# File 'lib/suspenders/generators/app_generator.rb', line 133 def copy_miscellaneous_files say "Copying miscellaneous support files" build :copy_miscellaneous_files end |
#create_github_repo ⇒ Object
126 127 128 129 130 131 |
# File 'lib/suspenders/generators/app_generator.rb', line 126 def create_github_repo if ![:skip_git] && [:github] say "Creating Github repo" build :create_github_repo, [:github] end end |
#create_heroku_apps ⇒ Object
111 112 113 114 115 116 117 118 119 120 121 122 123 124 |
# File 'lib/suspenders/generators/app_generator.rb', line 111 def create_heroku_apps if [:heroku] say "Creating Heroku apps" build :create_heroku_apps, [:heroku_flags] build :set_heroku_remotes build :set_heroku_rails_secrets build :set_heroku_application_host build :set_heroku_honeybadger_env build :set_heroku_backup_schedule build :set_heroku_buildpacks build :create_heroku_pipeline build :configure_automatic_deployment end end |
#customize_gemfile ⇒ Object
65 66 67 68 |
# File 'lib/suspenders/generators/app_generator.rb', line 65 def customize_gemfile build :replace_gemfile bundle_command "install" end |
#finish_template ⇒ Object
37 38 39 40 |
# File 'lib/suspenders/generators/app_generator.rb', line 37 def finish_template invoke :suspenders_customization super end |
#generate_default ⇒ Object
150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 |
# File 'lib/suspenders/generators/app_generator.rb', line 150 def generate_default run("spring stop > /dev/null 2>&1 || true") generate("suspenders:runner") generate("suspenders:profiler") generate("suspenders:json") generate("suspenders:static") generate("suspenders:testing") generate("suspenders:ci") generate("suspenders:js_driver") generate("suspenders:forms") unless [:api] generate("suspenders:db_optimizations") generate("suspenders:factories") generate("suspenders:lint") generate("suspenders:jobs") generate("suspenders:analytics") generate("suspenders:inline_svg") generate("suspenders:advisories") end |
#generate_deployment_default ⇒ Object
169 170 171 172 173 174 175 176 177 178 |
# File 'lib/suspenders/generators/app_generator.rb', line 169 def generate_deployment_default generate("suspenders:staging:pull_requests") generate("suspenders:production:single_redirect") generate("suspenders:production:compression") generate("suspenders:production:force_tls") generate("suspenders:production:email") generate("suspenders:production:timeout") generate("suspenders:production:deployment") generate("suspenders:production:manifest") end |
#generate_views ⇒ Object
180 181 182 |
# File 'lib/suspenders/generators/app_generator.rb', line 180 def generate_views generate("suspenders:views") end |
#leftovers ⇒ Object
42 43 44 45 |
# File 'lib/suspenders/generators/app_generator.rb', line 42 def leftovers generate("suspenders:stylesheet_base") unless [:api] || [:css] != "postcss" invoke :outro end |
#outro ⇒ Object
184 185 186 187 |
# File 'lib/suspenders/generators/app_generator.rb', line 184 def outro say "\nCongratulations! You just pulled our suspenders." say honeybadger_outro end |
#remove_config_comment_lines ⇒ Object
138 139 140 |
# File 'lib/suspenders/generators/app_generator.rb', line 138 def remove_config_comment_lines build :remove_config_comment_lines end |
#remove_routes_comment_lines ⇒ Object
142 143 144 |
# File 'lib/suspenders/generators/app_generator.rb', line 142 def remove_routes_comment_lines build :remove_routes_comment_lines end |
#run_database_migrations ⇒ Object
146 147 148 |
# File 'lib/suspenders/generators/app_generator.rb', line 146 def run_database_migrations build :run_database_migrations end |
#setup_database ⇒ Object
70 71 72 73 74 75 76 77 78 |
# File 'lib/suspenders/generators/app_generator.rb', line 70 def setup_database say "Setting up database" if [:database] == "postgresql" build :use_postgres_config_template end build :create_database end |
#setup_development_environment ⇒ Object
80 81 82 83 84 85 86 87 88 89 90 91 92 |
# File 'lib/suspenders/generators/app_generator.rb', line 80 def setup_development_environment say "Setting up the development environment" build :configure_local_mail build :raise_on_missing_assets_in_test build :raise_on_delivery_errors build :set_test_delivery_method build :raise_on_unpermitted_parameters build :provide_setup_script build :provide_yarn_script build :configure_generators build :configure_i18n_for_missing_translations build :configure_quiet_assets end |
#setup_production_environment ⇒ Object
94 95 96 97 |
# File 'lib/suspenders/generators/app_generator.rb', line 94 def setup_production_environment say "Setting up the production environment" build :setup_asset_host end |
#setup_secret_token ⇒ Object
99 100 101 102 |
# File 'lib/suspenders/generators/app_generator.rb', line 99 def setup_secret_token say "Moving secret token out of version control" build :setup_secret_token end |
#suspenders_customization ⇒ Object
47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 |
# File 'lib/suspenders/generators/app_generator.rb', line 47 def suspenders_customization invoke :customize_gemfile invoke :setup_development_environment invoke :setup_production_environment invoke :setup_secret_token invoke :configure_app invoke :copy_miscellaneous_files invoke :setup_database invoke :create_github_repo invoke :generate_default invoke :create_heroku_apps invoke :generate_deployment_default invoke :remove_config_comment_lines invoke :remove_routes_comment_lines invoke :run_database_migrations invoke :generate_views end |