Class: DeploymentTask::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/deployment_task/registry.rb

Constant Summary collapse

VERSION_FORMAT =
/\A\d{14}\z/

Class Method Summary collapse

Class Method Details

.all_tasksObject



22
23
24
25
# File 'lib/deployment_task/registry.rb', line 22

def all_tasks
  validate_all!
  registry.sort_by { |version, _| version }.map { |_, entry| entry }
end

.load_tasks!Object



33
34
35
36
37
# File 'lib/deployment_task/registry.rb', line 33

def load_tasks!
  task_dir = DeploymentTask.configuration.task_directory
  full_path = defined?(Rails) ? Rails.root.join(task_dir) : Pathname.new(task_dir)
  Dir[full_path.join("**/*.rb")].sort.each { |f| require f }
end

.register(task_class) ⇒ Object



10
11
12
# File 'lib/deployment_task/registry.rb', line 10

def register(task_class)
  registered_classes << task_class
end

.reset!Object



27
28
29
30
31
# File 'lib/deployment_task/registry.rb', line 27

def reset!
  @registry = nil
  @registered_classes = nil
  @validated = false
end

.tasks_for_phase(phase) ⇒ Object



14
15
16
17
18
19
20
# File 'lib/deployment_task/registry.rb', line 14

def tasks_for_phase(phase)
  validate_all!
  registry
    .select { |_version, entry| entry[:phase] == phase.to_sym }
    .sort_by { |version, _entry| version }
    .map { |_version, entry| entry[:task_class] }
end