Class: OceanSetupGenerator

Inherits:
Rails::Generators::NamedBase
  • Object
show all
Defined in:
lib/generators/ocean_setup/ocean_setup_generator.rb

Overview

:nodoc: all

Instance Method Summary collapse

Instance Method Details

#install_application_controllerObject



18
19
20
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 18

def install_application_controller
  copy_file "application_controller.rb", "#{Rails.root}/app/controllers/application_controller.rb"
end

#install_aws_yml_filesObject



91
92
93
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 91

def install_aws_yml_files
  copy_file "aws.yml", "#{Rails.root}/config/aws.yml"
end

#install_config_yml_filesObject



87
88
89
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 87

def install_config_yml_files
  copy_file "config.yml", "#{Rails.root}/config/config.yml"
end

#install_default_cache_time_fileObject



99
100
101
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 99

def install_default_cache_time_file
  copy_file "default_cache_time.rb", "#{Rails.root}/config/initializers/default_cache_time.rb"
end

#install_error_handling_and_specsObject



47
48
49
50
51
52
53
54
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 47

def install_error_handling_and_specs
  application "# Raise exceptions instead of rendering exception templates.
  config.action_dispatch.show_exceptions = false

  # Handle our own exceptions internally, so we can return JSON error bodies
  config.exceptions_app = ->(env) { ErrorsController.action(:show).call(env) }
  "
end

#install_generator_defaultsObject



65
66
67
68
69
70
71
72
73
74
75
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 65

def install_generator_defaults
  application "# Defaults for generators
  config.generators do |g|
    g.assets false
    g.stylesheets false
    g.helper false
    g.test_framework :rspec, :fixture => true
    g.fixture_replacement :factory_bot
  end
  "
end

#install_puma_config_fileObject



95
96
97
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 95

def install_puma_config_file
  copy_file "puma.rb", "#{Rails.root}/config/puma.rb"
end

#install_routes_fileObject



31
32
33
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 31

def install_routes_file
  template "routes.rb", "#{Rails.root}/config/routes.rb"
end

#install_spec_helper_and_support_filesObject



26
27
28
29
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 26

def install_spec_helper_and_support_files
  copy_file "spec_helper.rb", "#{Rails.root}/spec/spec_helper.rb"
  copy_file "hyperlinks.rb", "#{Rails.root}/spec/support/hyperlinks.rb"
end

#remove_application_helperObject



22
23
24
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 22

def remove_application_helper
  remove_file "#{Rails.root}/app/helpers/application_helper.rb"
end

#remove_unwanted_stuffObject



5
6
7
8
9
10
11
12
13
14
15
16
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 5

def remove_unwanted_stuff
  remove_file "#{Rails.root}/app/assets"
  remove_file "#{Rails.root}/lib/assets"
  remove_file "#{Rails.root}/app/views/layouts"
  remove_file "#{Rails.root}/config/locales"
  remove_file "#{Rails.root}/public"
  remove_file "#{Rails.root}/config/initializers/session_store.rb"
  remove_file "#{Rails.root}/test"
  remove_file "#{Rails.root}/vendor/assets"
  remove_file "#{Rails.root}/vendor/plugins"
  remove_file "#{Rails.root}/tmp/cache/assets"
end

#replace_gemfileObject



103
104
105
106
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 103

def replace_gemfile
  remove_file "#{Rails.root}/Gemfile"
  copy_file "Gemfile", "#{Rails.root}/Gemfile"
end

#setup_console_loggingObject



77
78
79
80
81
82
83
84
85
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 77

def setup_console_logging
  application "# We want to set up a custom logger which logs to STDOUT.
  # Docker expects your application to log to STDOUT/STDERR and to be run
  # in the foreground.
  config.log_level = ENV.fetch('LOG_LEVEL', :debug)
  config.log_tags  = [:uuid]
  config.logger    = ActiveSupport::TaggedLogging.new(Logger.new(STDOUT))
  "
end

#setup_dockerObject



113
114
115
116
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 113

def setup_docker
  template "Dockerfile", "#{Rails.root}/Dockerfile"
  copy_file "dockerignore", "#{Rails.root}/.dockerignore"
end

#setup_dotenv_fileObject



118
119
120
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 118

def setup_dotenv_file
  template "env", "#{Rails.root}.env"
end

#setup_gitObject



108
109
110
111
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 108

def setup_git
  copy_file "gitignore", "#{Rails.root}/.gitignore"
  git :init
end

#turn_off_asset_pipelineObject



41
42
43
44
45
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 41

def turn_off_asset_pipeline
  application "# Disable the asset pipeline
  config.assets.enabled = false
  "
end

#turn_off_localesObject



35
36
37
38
39
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 35

def turn_off_locales
  application "# No locales
  config.i18n.enforce_available_locales = false
  "
end

#turn_off_sessions_and_cookiesObject



56
57
58
59
60
61
62
63
# File 'lib/generators/ocean_setup/ocean_setup_generator.rb', line 56

def turn_off_sessions_and_cookies
  application "# Turn off sessions, cookies and the message flash
  config.session_store :disabled
  config.middleware.delete ActionDispatch::Cookies
  config.middleware.delete ActionDispatch::Session::CookieStore
  config.middleware.delete ActionDispatch::Flash
  "
end