Class: Configuration::OutputMultiBase

Inherits:
Object
  • Object
show all
Defined in:
lib/httpimagestore/configuration/output.rb

Direct Known Subclasses

OutputStorePath, OutputStoreURI, OutputStoreURL

Defined Under Namespace

Classes: OutputSpec

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(output_specs) ⇒ OutputMultiBase

Returns a new instance of OutputMultiBase.



85
86
87
# File 'lib/httpimagestore/configuration/output.rb', line 85

def initialize(output_specs)
	@output_specs = output_specs
end

Class Method Details

.parse(configuration, node) ⇒ Object



68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
# File 'lib/httpimagestore/configuration/output.rb', line 68

def self.parse(configuration, node)
	nodes = node.values.empty? ? node.children : [node]
	output_specs = nodes.map do |node|
		image_name = node.grab_values('image name').first
		scheme, host, port, path_spec, remaining = *node.grab_attributes_with_remaining('scheme', 'host', 'port', 'path')
		conditions, remaining = *HandlerStatement::ConditionalInclusion.grab_conditions_with_remaining(remaining)
		remaining.empty? or raise UnexpectedAttributesError.new(node, remaining)

		out = OutputSpec.new(configuration.global, image_name, scheme, host, port, path_spec)
		out.with_conditions(conditions)
		out
	end

	configuration.output and raise StatementCollisionError.new(node, 'output')
	configuration.output = self.new(output_specs)
end