Class: Aeternitas::InstallGenerator

Inherits:
Rails::Generators::Base
  • Object
show all
Includes:
Rails::Generators::Migration
Defined in:
lib/generators/aeternitas/install_generator.rb

Overview

Installs Aeternitas in a rails app.

Class Method Summary collapse

Instance Method Summary collapse

Class Method Details

.next_migration_number(dirname) ⇒ Object



37
38
39
# File 'lib/generators/aeternitas/install_generator.rb', line 37

def self.next_migration_number(dirname)
  ::ActiveRecord::Generators::Base.next_migration_number(dirname)
end

Instance Method Details

#copy_initializerObject



23
24
25
# File 'lib/generators/aeternitas/install_generator.rb', line 23

def copy_initializer
  copy_file("initializer.rb", "config/initializers/aeternitas.rb")
end

#create_migration_fileObject



14
15
16
17
18
19
20
21
# File 'lib/generators/aeternitas/install_generator.rb', line 14

def create_migration_file
  migration_dir = File.expand_path("db/migrate")
  if self.class.migration_exists?(migration_dir, "add_aeternitas")
    ::Kernel.warn "Migration 'add_aeternitas' already exists. Skipping."
  else
    migration_template("add_aeternitas.rb.erb", "db/migrate/add_aeternitas.rb")
  end
end

#reminderObject



27
28
29
30
31
32
33
34
35
# File 'lib/generators/aeternitas/install_generator.rb', line 27

def reminder
  say "\nDon't forget to regularly run 'Aeternitas.enqueue_due_pollables', e.g., using 'whenever'", :red
  say "You should also schedule maintenance jobs:\n", :yellow
  say "To clean up old metrics (if metrics are enabled):\n"
  say "    Aeternitas::CleanupOldMetricsJob.perform_later\n", :white
  say "To clean up stale locks from crashed workers:\n"
  say "    Aeternitas::CleanupStaleLocksJob.perform_later\n", :white
  say "Schedule these to run periodically, for example, once a week.\n"
end