class Suspenders::AppGenerator
Public Class Methods
new(*args)
click to toggle source
Calls superclass method
# File lib/suspenders/generators/app_generator.rb, line 36 def initialize(*args) super if options[:webpack] && `which yarn`.empty? raise Rails::Generators::Error, 'ERROR: yarn is required in order to use webpack' end end
Public Instance Methods
configure_app()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 159 def configure_app say 'Configuring app' build :configure_action_mailer build :configure_active_job build :configure_time_formats build :configure_simple_form build :fix_i18n_deprecation_warning build :setup_default_rake_task build :configure_puma build :setup_foreman build :configure_airbrake build :configure_lib_directory end
copy_miscellaneous_files()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 263 def copy_miscellaneous_files say 'Copying miscellaneous support files' build :copy_miscellaneous_files end
copy_project_markdown_files()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 79 def copy_project_markdown_files build :readme build :pull_request_template end
create_github_repo()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 233 def create_github_repo if !options[:skip_git] && options[:github] say 'Creating Github repo' build :create_github_repo, options[:github] end end
create_heroku_apps()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 224 def create_heroku_apps unless options[:skip_heroku] say "Creating Heroku apps" build :create_heroku_apps, options[:heroku_flags] build :set_heroku_serve_static_files build :set_heroku_rails_secrets end end
create_suspenders_views()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 151 def create_suspenders_views say 'Creating suspenders views' build :create_partials_directory build :create_shared_flashes build :create_shared_javascripts build :create_application_layout end
customize_error_pages()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 268 def customize_error_pages say 'Customizing the 500/404/422 pages' build :customize_error_pages end
customize_gemfile()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 84 def customize_gemfile build :replace_gemfile build :set_ruby_to_version_being_used build :add_webpacker if options[:webpack] unless options[:skip_heroku] build :setup_heroku_specific_gems end bundle_command 'install' build :version_gems_in_gemfile end
finish_template()
click to toggle source
Calls superclass method
# File lib/suspenders/generators/app_generator.rb, line 44 def finish_template invoke :suspenders_customization super end
init_git()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 259 def init_git build :init_git end
initial_commit_and_branching()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 209 def initial_commit_and_branching if !options[:skip_git] say 'Creating initial commit and branches' build :create_initial_commit build :setup_deployment_environment_branches end end
outro()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 288 def outro say 'Congratulations! You just pulled our suspenders.' say 'Remember to update the README with specifics for your project.' end
push_to_origin()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 217 def push_to_origin if !options[:skip_git] && options[:origin] say 'Pushing to origin remote' build :setup_and_push_to_origin_remote, options[:origin] end end
remove_routes_comment_lines()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 273 def remove_routes_comment_lines build :remove_routes_comment_lines end
run_autofixes()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 204 def run_autofixes say 'Running rubocop and i18n autofixes' build :run_autofixes end
run_setup()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 277 def run_setup build :copy_env_example if options[:webpack] build :inject_webpacker_into_setup build :run_bin_setup build :run_webpacker_install else build :run_bin_setup end end
setup_bundler_audit()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 249 def setup_bundler_audit say "Setting up bundler-audit" build :setup_bundler_audit end
setup_css_framework()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 184 def setup_css_framework if options[:css_framework] say "Installing #{options[:css_framework]}" case options[:css_framework] when 'bourbon_n_friends' then build :install_bourbon_n_friends when 'bootstrap' then build :install_bootstrap when 'foundation' then build :install_foundation else say "Unrecognized Css Framework" end end end
setup_database()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 98 def setup_database say 'Setting up database' if 'postgresql' == options[:database] build :use_postgres_config_template end build :create_database end
setup_development_environment()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 108 def setup_development_environment say 'Setting up the development environment' build :raise_on_delivery_errors build :set_test_delivery_method build :raise_on_unpermitted_parameters build :provide_setup_script build :configure_generators build :configure_i18n_for_missing_translations build :configure_rubocop build :configure_quiet_assets end
setup_git()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 196 def setup_git if !options[:skip_git] say 'Initializing git' invoke :setup_gitignore invoke :init_git end end
setup_gitignore()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 245 def setup_gitignore build :gitignore_files end
setup_javascripts()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 178 def setup_javascripts say 'Set up javascript' build :setup_javascripts build :inject_webpacker_into_layout if options[:webpack] end
setup_production_environment()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 131 def setup_production_environment say 'Setting up the production environment' build :configure_newrelic build :configure_smtp build :enable_rack_canonical_host build :configure_production_log_level build :enable_rack_deflater build :setup_asset_host end
setup_secret_token()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 146 def setup_secret_token say 'Moving secret token out of version control' build :setup_secret_token end
setup_segment()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 240 def setup_segment say 'Setting up Segment' build :setup_segment end
setup_spring()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 254 def setup_spring say "Springifying binstubs" build :setup_spring end
setup_staging_environment()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 141 def setup_staging_environment say 'Setting up the staging environment' build :setup_staging_environment end
setup_stylesheets()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 173 def setup_stylesheets say 'Set up stylesheets' build :setup_stylesheets end
setup_test_environment()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 120 def setup_test_environment say 'Setting up the test environment' build :generate_rspec build :configure_rspec build :enable_database_cleaner build :configure_spec_support_features build :configure_i18n_for_test_environment build :configure_i18n_tasks build :configure_action_mailer_in_specs end
suspenders_customization()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 49 def suspenders_customization invoke :copy_project_markdown_files invoke :customize_gemfile invoke :setup_development_environment invoke :setup_test_environment invoke :setup_production_environment invoke :setup_staging_environment invoke :setup_secret_token invoke :create_suspenders_views invoke :configure_app invoke :setup_stylesheets invoke :setup_javascripts invoke :copy_miscellaneous_files invoke :customize_error_pages invoke :remove_routes_comment_lines invoke :setup_git invoke :setup_database invoke :create_heroku_apps invoke :create_github_repo invoke :setup_segment invoke :setup_bundler_audit invoke :setup_spring invoke :run_setup invoke :run_autofixes invoke :initial_commit_and_branching invoke :push_to_origin invoke :setup_css_framework invoke :outro end
Protected Instance Methods
get_builder_class()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 295 def get_builder_class Suspenders::AppBuilder end
using_active_record?()
click to toggle source
# File lib/suspenders/generators/app_generator.rb, line 299 def using_active_record? !options[:skip_active_record] end