Class: JenkinsPipelineBuilder::ModuleRegistry
- Inherits:
-
Object
- Object
- JenkinsPipelineBuilder::ModuleRegistry
- Defined in:
- lib/jenkins_pipeline_builder/module_registry.rb
Instance Attribute Summary collapse
-
#registered_modules ⇒ Object
Returns the value of attribute registered_modules.
-
#registry ⇒ Object
Returns the value of attribute registry.
Instance Method Summary collapse
- #clear_versions(sets = registry.values) ⇒ Object
-
#entries ⇒ Object
Ideally refactor this out to be derived from the registry, but I’m lazy for now.
- #get(path) ⇒ Object
- #get_by_path_collection(path, registry) ⇒ Object
-
#initialize ⇒ ModuleRegistry
constructor
A new instance of ModuleRegistry.
- #logger ⇒ Object
- #register(prefix, set) ⇒ Object
- #traverse_registry(registry, params, n_xml, strict = false) ⇒ Object
- #traverse_registry_path(path, params, n_xml) ⇒ Object
- #versions ⇒ Object
Constructor Details
#initialize ⇒ ModuleRegistry
Returns a new instance of ModuleRegistry.
25 26 27 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 25 def initialize @registry = { job: {} } end |
Instance Attribute Details
#registered_modules ⇒ Object
Returns the value of attribute registered_modules.
24 25 26 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 24 def registered_modules @registered_modules end |
#registry ⇒ Object
Returns the value of attribute registry.
24 25 26 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 24 def registry @registry end |
Instance Method Details
#clear_versions(sets = registry.values) ⇒ Object
35 36 37 38 39 40 41 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 35 def clear_versions(sets = registry.values) @versions = nil sets.each do |entry| entry.clear_installed_version if entry.is_a? ExtensionSet clear_versions entry.values if entry.respond_to? :values end end |
#entries ⇒ Object
Ideally refactor this out to be derived from the registry, but I’m lazy for now
49 50 51 52 53 54 55 56 57 58 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 49 def entries { builders: '//builders', publishers: '//publishers', wrappers: '//buildWrappers', triggers: '//triggers', build_steps: '//buildSteps', promotion_conditions: '//conditions' } end |
#get(path) ⇒ Object
72 73 74 75 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 72 def get(path) parts = path.split('/') get_by_path_collection(parts, @registry) end |
#get_by_path_collection(path, registry) ⇒ Object
77 78 79 80 81 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 77 def get_by_path_collection(path, registry) item = registry[path.shift.to_sym] return item if path.count == 0 get_by_path_collection(path, item) end |
#logger ⇒ Object
43 44 45 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 43 def logger JenkinsPipelineBuilder.logger end |
#register(prefix, set) ⇒ Object
60 61 62 63 64 65 66 67 68 69 70 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 60 def register(prefix, set) name = prefix.pop root = prefix.inject(@registry, :[]) root[name] = {} unless root[name] # TODO: Set installed version here if root[name][set.name] root[name][set.name].merge set else root[name][set.name] = set end end |
#traverse_registry(registry, params, n_xml, strict = false) ⇒ Object
88 89 90 91 92 93 94 95 96 97 98 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 88 def traverse_registry(registry, params, n_xml, strict = false) params.each do |key, value| next unless registry.is_a? Hash unless registry.key? key raise TypeError, "!!!! could not find key #{key} !!!!" if strict next end reg_value = registry[key] execute_registry_value reg_value, value, n_xml end end |
#traverse_registry_path(path, params, n_xml) ⇒ Object
83 84 85 86 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 83 def traverse_registry_path(path, params, n_xml) registry = get(path) traverse_registry(registry, params, n_xml) end |
#versions ⇒ Object
29 30 31 32 33 |
# File 'lib/jenkins_pipeline_builder/module_registry.rb', line 29 def versions # Return a hash with a default of 1000 so that we'll get the newest in debug return Hash.new { |_| '1000.0' } if JenkinsPipelineBuilder.debug @versions ||= JenkinsPipelineBuilder.client.plugin.list_installed end |