Class: SolidFlow::Registries::WorkflowRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/solid_flow/registries/workflow_registry.rb

Instance Method Summary collapse

Constructor Details

#initializeWorkflowRegistry

Returns a new instance of WorkflowRegistry.



6
7
8
9
# File 'lib/solid_flow/registries/workflow_registry.rb', line 6

def initialize
  @mutex = Mutex.new
  @workflows = {}
end

Instance Method Details

#fetch(name) ⇒ Object



18
19
20
21
22
# File 'lib/solid_flow/registries/workflow_registry.rb', line 18

def fetch(name)
  @workflows.fetch(name.to_s)
rescue KeyError
  raise Errors::ConfigurationError, "Workflow #{name} is not registered"
end

#register(name, klass) ⇒ Object



11
12
13
14
15
16
# File 'lib/solid_flow/registries/workflow_registry.rb', line 11

def register(name, klass)
  @mutex.synchronize do
    @workflows.delete_if { |_key, value| value == klass }
    @workflows[name.to_s] = klass
  end
end

#resolve(klass) ⇒ Object



24
25
26
# File 'lib/solid_flow/registries/workflow_registry.rb', line 24

def resolve(klass)
  @workflows.key(klass)
end

#to_hObject



28
29
30
# File 'lib/solid_flow/registries/workflow_registry.rb', line 28

def to_h
  @workflows.dup
end