Class: Shopapp::DeployGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/shopapp/deploy/deploy_generator.rb

Instance Method Summary collapse

Instance Method Details

#app_codeObject



7
8
9
10
# File 'lib/generators/shopapp/deploy/deploy_generator.rb', line 7

def app_code
  (Rails.configuration.settings['shopapp_name'] ||
    Rails.application.class.parent_name).to_s.downcase.parameterize.underscore
end

#create_capfileObject



12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
# File 'lib/generators/shopapp/deploy/deploy_generator.rb', line 12

def create_capfile
  create_file "Capfile", <<~FILECONTENT
    require "capistrano/setup"
    require "capistrano/deploy"

    require "capistrano/scm/git"
    install_plugin Capistrano::SCM::Git

    require 'capistrano/rvm'
    require "capistrano/bundler"
    require "capistrano/rails/assets"
    require "capistrano/rails/migrations"
    require "capistrano/passenger"
    # require "capistrano/yarn"

    Dir.glob("lib/capistrano/tasks/*.rake").each { |r| import r }
  FILECONTENT
end

#create_config_deploy_production_rbObject



45
46
47
48
49
50
51
52
53
# File 'lib/generators/shopapp/deploy/deploy_generator.rb', line 45

def create_config_deploy_production_rb
  create_file "config/deploy/production.rb", <<~FILECONTENT
    set :stage, :production
    set :rails_env, :production
    set :branch, "master"

    server "#{app_code}.shoplift.fi", user: "#{app_code}", roles: %w{app db web}
  FILECONTENT
end

#create_config_deploy_rbObject



31
32
33
34
35
36
37
38
39
40
41
42
43
# File 'lib/generators/shopapp/deploy/deploy_generator.rb', line 31

def create_config_deploy_rb
  create_file "config/deploy.rb", <<~FILECONTENT
    lock "~> 3.11.0"

    set :application, "Prolift"
    set :repo_url, "[email protected]:shoplift/#{app_code}.git"
    set :rvm_ruby_version, '2.5.1'
    append :linked_files, 'config/local.yml'

    set :deploy_to, "/home/shoplift/#{app_code}"
    set :passenger_restart_with_touch, true
  FILECONTENT
end