Class: SolidFlow::Registries::TaskRegistry

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

Instance Method Summary collapse

Constructor Details

#initializeTaskRegistry

Returns a new instance of TaskRegistry.



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

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

Instance Method Details

#fetch(name) ⇒ Object



17
18
19
20
21
# File 'lib/solid_flow/registries/task_registry.rb', line 17

def fetch(name)
  @tasks.fetch(name.to_sym)
rescue KeyError
  raise Errors::ConfigurationError, "Task #{name} is not registered"
end

#register(name, klass) ⇒ Object



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

def register(name, klass)
  @mutex.synchronize do
    @tasks[name.to_sym] = klass
  end
end

#resolve(klass) ⇒ Object



23
24
25
# File 'lib/solid_flow/registries/task_registry.rb', line 23

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

#to_hObject



27
28
29
# File 'lib/solid_flow/registries/task_registry.rb', line 27

def to_h
  @tasks.dup
end