Class: SolidOps::Generators::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Defined in:
lib/generators/solid_ops/install/install_generator.rb

Instance Method Summary collapse

Instance Method Details

#add_routesObject



21
22
23
24
25
26
27
28
# File 'lib/generators/solid_ops/install/install_generator.rb', line 21

def add_routes
  routes_file = File.join(destination_root, "config", "routes.rb")
  if File.exist?(routes_file) && File.read(routes_file).include?("SolidOps::Engine")
    say_status :skip, "SolidOps route already mounted", :yellow
  else
    route 'mount SolidOps::Engine => "/solid_ops"'
  end
end

#create_initializerObject



17
18
19
# File 'lib/generators/solid_ops/install/install_generator.rb', line 17

def create_initializer
  template "solid_ops_initializer.rb", "config/initializers/solid_ops.rb"
end

#install_solid_componentsObject



30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
# File 'lib/generators/solid_ops/install/install_generator.rb', line 30

def install_solid_components
  # Detect what's already installed
  detect_existing_components

  install_all = options[:all]

  # If no flags given, ask
  if !install_all && !options[:queue] && !options[:cache] && !options[:cable]
    install_all = yes?("\n  Install all Solid components (Queue, Cache, Cable)? (y/n)")
  end

  # A component is "active" if the user selected it OR it already exists.
  # This ensures we configure environments / cable.yml / print database
  # instructions even when someone re-runs the installer after manually
  # adding gems.
  @install_queue = install_all || options[:queue] || gem_in_bundle?("solid_queue")
  @install_cache = install_all || options[:cache] || gem_in_bundle?("solid_cache")
  @install_cable = install_all || options[:cable] || gem_in_bundle?("solid_cable")

  if !@install_queue && !@install_cache && !@install_cable
    warn_no_components_selected
    return
  end

  add_missing_gems
  run_component_installers
  install_solid_ops_migrations
  configure_environment("development")
  configure_environment("test")
  configure_cable_yml if @install_cable
  print_database_yml_instructions
end