Class: JenkinsPipelineBuilder::Extension
- Inherits:
-
Object
- Object
- JenkinsPipelineBuilder::Extension
- Defined in:
- lib/jenkins_pipeline_builder/extensions.rb
Constant Summary collapse
- EXT_METHODS =
{ name: false, plugin_id: false, jenkins_name: 'No jenkins display name set', description: 'No description set', announced: true, min_version: false, path: false, type: false, before: false, after: false, xml: false, parameters: [] }.freeze
Instance Attribute Summary collapse
-
#helper ⇒ Object
Returns the value of attribute helper.
Instance Method Summary collapse
- #check_parameters(value) ⇒ Object
- #errors ⇒ Object
- #execute(value, n_xml) ⇒ Object
-
#initialize ⇒ Extension
constructor
A new instance of Extension.
- #valid? ⇒ Boolean
Constructor Details
#initialize ⇒ Extension
Returns a new instance of Extension.
47 48 49 50 51 52 53 |
# File 'lib/jenkins_pipeline_builder/extensions.rb', line 47 def initialize EXT_METHODS.each do |key, value| instance_variable_set("@#{key}", value) if value end before false after false end |
Instance Attribute Details
#helper ⇒ Object
Returns the value of attribute helper.
24 25 26 |
# File 'lib/jenkins_pipeline_builder/extensions.rb', line 24 def helper @helper end |
Instance Method Details
#check_parameters(value) ⇒ Object
76 77 78 79 80 81 82 83 84 85 |
# File 'lib/jenkins_pipeline_builder/extensions.rb', line 76 def check_parameters(value) return [] if parameters && parameters.empty? return [] unless value.is_a? Hash errors = [] value.each_key do |key| next if parameters && parameters.include?(key) errors << "Extension #{name} does not support parameter #{key}" end errors end |
#errors ⇒ Object
87 88 89 90 91 92 93 |
# File 'lib/jenkins_pipeline_builder/extensions.rb', line 87 def errors errors = {} EXT_METHODS.keys.each do |name| errors[name] = 'Must be set' if send(name).nil? end errors end |
#execute(value, n_xml) ⇒ Object
59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 |
# File 'lib/jenkins_pipeline_builder/extensions.rb', line 59 def execute(value, n_xml) errors = check_parameters value raise ArgumentError, errors.join("\n") if errors.any? unless path raise ArgumentError, %(Extension #{name} has no valid path Check ModuleRegistry#entries and the definition of the extension Note: job_attributes have no implicit path and must be set in the builder ).squeeze(' ') end n_builders = n_xml.xpath(path).first n_builders.instance_exec(value, &before) if before build_extension_xml n_builders, value n_builders.instance_exec(value, &after) if after true end |
#valid? ⇒ Boolean
55 56 57 |
# File 'lib/jenkins_pipeline_builder/extensions.rb', line 55 def valid? errors.empty? end |