Class: Underlay::AppGenerator
- Inherits:
-
Rails::Generators::AppGenerator
- Object
- Rails::Generators::AppGenerator
- Underlay::AppGenerator
- Defined in:
- lib/underlay/generators/app_generator.rb
Class Method Summary collapse
Instance Method Summary collapse
- #clean_up ⇒ Object
- #configure_app ⇒ Object
- #copy_miscellaneous_files ⇒ Object
- #create_github_repo ⇒ Object
- #create_heroku_apps ⇒ Object
- #create_local_heroku_setup ⇒ Object
- #create_underlay_views ⇒ Object
- #customize_error_pages ⇒ Object
- #customize_gemfile ⇒ Object
- #finish_template ⇒ Object
- #generate_default ⇒ Object
-
#initialize(*args) ⇒ AppGenerator
constructor
A new instance of AppGenerator.
- #outro ⇒ Object
- #remove_app_comment_lines ⇒ Object
- #remove_config_comment_lines ⇒ Object
- #remove_routes_comment_lines ⇒ Object
- #setup_bundler_audit ⇒ Object
- #setup_database ⇒ Object
- #setup_default_directories ⇒ Object
- #setup_development_environment ⇒ Object
- #setup_figaro ⇒ Object
- #setup_google_tag_manager ⇒ Object
- #setup_production_environment ⇒ Object
- #setup_secret_token ⇒ Object
- #setup_spring ⇒ Object
- #setup_test_environment ⇒ Object
- #underlay_customization ⇒ Object
Constructor Details
#initialize(*args) ⇒ AppGenerator
Returns a new instance of AppGenerator.
54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/underlay/generators/app_generator.rb', line 54 def initialize(*args) super if api_mode? self. = .merge( api: true, skip_sprockets: true, skip_javascript: true ).freeze end end |
Class Method Details
.banner ⇒ Object
273 274 275 |
# File 'lib/underlay/generators/app_generator.rb', line 273 def self. "underlay #{arguments.map(&:usage).join(' ')} [options]" end |
Instance Method Details
#clean_up ⇒ Object
227 228 229 230 231 232 |
# File 'lib/underlay/generators/app_generator.rb', line 227 def clean_up say 'Code cleaning' build :rubocop_autocorrect build :manual_code_correct build_for_api :non_api_files_removal end |
#configure_app ⇒ Object
171 172 173 174 175 176 177 178 179 180 |
# File 'lib/underlay/generators/app_generator.rb', line 171 def configure_app say 'Configuring app' build :configure_action_mailer build :configure_active_job build :configure_time_formats build :setup_default_rake_task build :replace_default_puma_configuration build :set_up_forego build :setup_rack_mini_profiler end |
#copy_miscellaneous_files ⇒ Object
239 240 241 242 |
# File 'lib/underlay/generators/app_generator.rb', line 239 def copy_miscellaneous_files say 'Copying miscellaneous support files' build :copy_miscellaneous_files end |
#create_github_repo ⇒ Object
202 203 204 205 206 207 |
# File 'lib/underlay/generators/app_generator.rb', line 202 def create_github_repo if ![:skip_git] && [:github] say 'Creating Github repo' build :create_github_repo, [:github] end end |
#create_heroku_apps ⇒ Object
189 190 191 192 193 194 195 196 197 198 199 200 |
# File 'lib/underlay/generators/app_generator.rb', line 189 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_backup_schedule build :create_heroku_pipeline build :configure_automatic_deployment end end |
#create_local_heroku_setup ⇒ Object
182 183 184 185 186 187 |
# File 'lib/underlay/generators/app_generator.rb', line 182 def create_local_heroku_setup say 'Creating local Heroku setup' build :create_review_apps_setup_script build :create_deploy_script build :create_heroku_application_manifest_file end |
#create_underlay_views ⇒ Object
162 163 164 165 166 167 168 169 |
# File 'lib/underlay/generators/app_generator.rb', line 162 def create_underlay_views say 'Creating underlay views' build :create_partials_directory build_for_non_api :create_shared_flashes build_for_non_api :create_shared_javascripts build_for_non_api :create_shared_css_overrides build_for_non_api :create_application_layout end |
#customize_error_pages ⇒ Object
244 245 246 247 |
# File 'lib/underlay/generators/app_generator.rb', line 244 def customize_error_pages say 'Customizing the 500/404/422 pages' unless [:api] build_for_non_api :customize_error_pages end |
#customize_gemfile ⇒ Object
98 99 100 101 102 103 |
# File 'lib/underlay/generators/app_generator.rb', line 98 def customize_gemfile build :replace_gemfile, [:path] build :set_ruby_to_version_being_used bundle_command 'install' build_for_non_api :configure_simple_form end |
#finish_template ⇒ Object
66 67 68 69 |
# File 'lib/underlay/generators/app_generator.rb', line 66 def finish_template invoke :underlay_customization super end |
#generate_default ⇒ Object
261 262 263 264 265 266 267 |
# File 'lib/underlay/generators/app_generator.rb', line 261 def generate_default run('spring stop') generate('underlay:initialize_active_job') generate('underlay:enforce_ssl') generate('underlay:static') generate('underlay:stylesheet_base') end |
#outro ⇒ Object
269 270 271 |
# File 'lib/underlay/generators/app_generator.rb', line 269 def outro say 'You just laid the underlay. Time to add some value!' end |
#remove_app_comment_lines ⇒ Object
249 250 251 |
# File 'lib/underlay/generators/app_generator.rb', line 249 def remove_app_comment_lines build :remove_app_comment_lines end |
#remove_config_comment_lines ⇒ Object
253 254 255 |
# File 'lib/underlay/generators/app_generator.rb', line 253 def remove_config_comment_lines build :remove_config_comment_lines end |
#remove_routes_comment_lines ⇒ Object
257 258 259 |
# File 'lib/underlay/generators/app_generator.rb', line 257 def remove_routes_comment_lines build :remove_routes_comment_lines end |
#setup_bundler_audit ⇒ Object
222 223 224 225 |
# File 'lib/underlay/generators/app_generator.rb', line 222 def setup_bundler_audit say 'Setting up bundler-audit' build :setup_bundler_audit end |
#setup_database ⇒ Object
105 106 107 108 109 110 111 112 113 |
# File 'lib/underlay/generators/app_generator.rb', line 105 def setup_database say 'Setting up database' if [:database] == 'postgresql' build :use_postgres_config_template end build :create_database end |
#setup_default_directories ⇒ Object
218 219 220 |
# File 'lib/underlay/generators/app_generator.rb', line 218 def setup_default_directories build :setup_default_directories end |
#setup_development_environment ⇒ Object
115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 |
# File 'lib/underlay/generators/app_generator.rb', line 115 def setup_development_environment say 'Setting up the development environment' build_for_non_api :raise_on_missing_assets_in_test build :raise_on_delivery_errors build :set_test_delivery_method build :add_bullet_gem_configuration build :raise_on_unpermitted_parameters build :provide_setup_script build :provide_rake_script build :provide_update_script build :provide_dev_prime_task build :configure_generators build :configure_i18n_for_missing_translations build_for_non_api :configure_quiet_assets end |
#setup_figaro ⇒ Object
214 215 216 |
# File 'lib/underlay/generators/app_generator.rb', line 214 def setup_figaro build :copy_figaro_files end |
#setup_google_tag_manager ⇒ Object
209 210 211 212 |
# File 'lib/underlay/generators/app_generator.rb', line 209 def setup_google_tag_manager say 'Setting up Google Tage Manager' unless [:api] build_for_non_api :setup_google_tag_manager end |
#setup_production_environment ⇒ Object
148 149 150 151 152 153 154 155 |
# File 'lib/underlay/generators/app_generator.rb', line 148 def setup_production_environment say 'Setting up the production environment' build :configure_smtp build :configure_rack_timeout build :enable_rack_canonical_host build :enable_rack_deflater build_for_non_api :setup_asset_host end |
#setup_secret_token ⇒ Object
157 158 159 160 |
# File 'lib/underlay/generators/app_generator.rb', line 157 def setup_secret_token say 'Moving secret token out of version control' build :setup_secret_token end |
#setup_spring ⇒ Object
234 235 236 237 |
# File 'lib/underlay/generators/app_generator.rb', line 234 def setup_spring say 'Springifying binstubs' build :setup_spring end |
#setup_test_environment ⇒ Object
131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 |
# File 'lib/underlay/generators/app_generator.rb', line 131 def setup_test_environment say 'Setting up the test environment' build :set_up_factory_bot_for_rspec build :generate_factories_file build :generate_rspec build :configure_rspec build :enable_database_cleaner build :provide_shoulda_matchers_config build :configure_spec_support_features build :configure_ci build :configure_rubocop build_for_non_api :configure_linters build :configure_i18n_for_test_environment build :configure_action_mailer_in_specs build_for_non_api :configure_capybara end |
#underlay_customization ⇒ Object
71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 |
# File 'lib/underlay/generators/app_generator.rb', line 71 def underlay_customization invoke :customize_gemfile invoke :setup_development_environment invoke :setup_test_environment invoke :setup_production_environment invoke :setup_secret_token invoke :create_underlay_views invoke :configure_app invoke :copy_miscellaneous_files invoke :customize_error_pages invoke :remove_app_comment_lines invoke :remove_config_comment_lines invoke :remove_routes_comment_lines invoke :setup_figaro invoke :setup_database invoke :create_local_heroku_setup invoke :create_heroku_apps invoke :create_github_repo invoke :setup_google_tag_manager invoke :setup_bundler_audit invoke :setup_spring invoke :generate_default invoke :setup_default_directories invoke :clean_up invoke :outro end |