Class: LcpRuby::BackgroundJobs::Registry
- Inherits:
-
Object
- Object
- LcpRuby::BackgroundJobs::Registry
- Defined in:
- lib/lcp_ruby/background_jobs/registry.rb
Class Method Summary collapse
- .all_definitions ⇒ Object
- .available? ⇒ Boolean
- .clear! ⇒ Object
- .definition_by_name(name) ⇒ Object
- .mark_available! ⇒ Object
- .register_definition!(definition) ⇒ Object
- .reload! ⇒ Object
- .set_resolver(resolver_instance) ⇒ Object
Class Method Details
.all_definitions ⇒ Object
21 22 23 24 25 26 27 28 29 |
# File 'lib/lcp_ruby/background_jobs/registry.rb', line 21 def all_definitions return {} unless available? defs = resolver&.job_definitions || {} if @inline_definitions&.any? defs = defs.merge(@inline_definitions) end defs end |
.available? ⇒ Boolean
61 62 63 |
# File 'lib/lcp_ruby/background_jobs/registry.rb', line 61 def available? @available == true end |
.clear! ⇒ Object
52 53 54 55 56 57 58 59 |
# File 'lib/lcp_ruby/background_jobs/registry.rb', line 52 def clear! monitor.synchronize do @available = false @resolver = nil @cache = nil @inline_definitions = nil end end |
.definition_by_name(name) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 |
# File 'lib/lcp_ruby/background_jobs/registry.rb', line 9 def definition_by_name(name) return nil unless available? monitor.synchronize do @cache ||= {} @cache[name.to_s] ||= begin (resolver&.job_definition_by_name(name.to_s)) || (@inline_definitions && @inline_definitions[name.to_s]) end end end |
.mark_available! ⇒ Object
65 66 67 |
# File 'lib/lcp_ruby/background_jobs/registry.rb', line 65 def mark_available! @available = true end |
.register_definition!(definition) ⇒ Object
38 39 40 41 42 43 44 |
# File 'lib/lcp_ruby/background_jobs/registry.rb', line 38 def register_definition!(definition) monitor.synchronize do @inline_definitions ||= {} @inline_definitions[definition.name] = definition @cache&.delete(definition.name) end end |
.reload! ⇒ Object
46 47 48 49 50 |
# File 'lib/lcp_ruby/background_jobs/registry.rb', line 46 def reload! monitor.synchronize do @cache = nil end end |
.set_resolver(resolver_instance) ⇒ Object
31 32 33 34 35 36 |
# File 'lib/lcp_ruby/background_jobs/registry.rb', line 31 def set_resolver(resolver_instance) monitor.synchronize do @resolver = resolver_instance @cache = nil end end |