Class: Maquina::Generators::MissionControlJobsGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_gemObject

  1. Add gem to Gemfile



40
41
42
43
44
45
46
47
48
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 40

def add_gem
  gemfile_path = File.join(destination_root, "Gemfile")
  if File.exist?(gemfile_path)
    content = File.read(gemfile_path)
    unless content.include?('gem "mission_control-jobs"')
      append_to_file "Gemfile", "\ngem \"mission_control-jobs\"\n"
    end
  end
end

#add_routeObject

  1. Routes



51
52
53
54
55
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 51

def add_route
  mount_path = "#{options[:prefix]}/mission_control_jobs"

  route "mount MissionControl::Jobs::Engine, at: \"#{mount_path}\""
end

#copy_layoutObject

  1. Layout



66
67
68
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 66

def copy_layout
  layout_files.each { |f| copy_file f, f }
end

#copy_viewsObject

  1. Custom views



71
72
73
74
75
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 71

def copy_views
  return unless options[:copy_views]

  view_files.each { |f| copy_file f, f }
end

#create_admin_navigationObject

  1. Admin navigation



58
59
60
61
62
63
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 58

def create_admin_navigation
  nav_path = "app/views/layouts/_admin_navigation.html.erb"
  return if File.exist?(File.join(destination_root, nav_path))

  template "app/views/layouts/_admin_navigation.html.erb.tt", nav_path
end

#create_backstage_controllerObject

  1. BackstageController



20
21
22
23
24
25
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 20

def create_backstage_controller
  backstage_path = "app/controllers/backstage_controller.rb"
  return if File.exist?(File.join(destination_root, backstage_path))

  template "app/controllers/backstage_controller.rb.tt", backstage_path
end

#create_helperObject

  1. Helper



28
29
30
31
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 28

def create_helper
  copy_file "app/helpers/mission_control_helper.rb",
    "app/helpers/mission_control_helper.rb"
end

#create_initializerObject

  1. Initializer



34
35
36
37
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 34

def create_initializer
  template "config/initializers/mission_control.rb.tt",
    "config/initializers/mission_control.rb"
end

#run_bundle_installObject

  1. Bundle install



78
79
80
81
82
83
84
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 78

def run_bundle_install
  return unless rails_app?

  Bundler.with_unbundled_env do
    system("bundle install", chdir: destination_root)
  end
end

#show_post_installObject

  1. Post-install message



87
88
89
90
91
92
93
94
95
96
97
98
99
100
# File 'lib/generators/maquina/mission_control_jobs/mission_control_jobs_generator.rb', line 87

def show_post_install
  return if options[:quiet]

  say ""
  say "Mission Control Jobs has been installed!", :green
  say ""
  say "Configuration:", :yellow
  say "  - Set credentials: bin/rails credentials:edit"
  say "    backstage:"
  say "      username: your_user"
  say "      password: your_password"
  say "  - Or set ENV vars: #{options[:user_env_var]}, #{options[:password_env_var]}"
  say ""
end