Class: Mantra::Transform
- Inherits:
-
Object
show all
- Includes:
- Helpers::ObjectWithType
- Defined in:
- lib/mantra/transform.rb,
lib/mantra/transform/merge.rb,
lib/mantra/transform/extract.rb,
lib/mantra/transform/replace.rb,
lib/mantra/transform/inputs/any.rb,
lib/mantra/transform/inputs/file.rb,
lib/mantra/transform/inputs/hash.rb,
lib/mantra/transform/inputs/array.rb,
lib/mantra/transform/inputs/folder.rb,
lib/mantra/transform/inputs/string.rb,
lib/mantra/transform/extract_section.rb,
lib/mantra/transform/templatize_value.rb,
lib/mantra/transform/extract_certificates.rb,
lib/mantra/transform/templatize_ip_address.rb,
lib/mantra/transform/extract_certificates_to_files.rb
Defined Under Namespace
Classes: Extract, ExtractCertificates, ExtractCertificatesToFiles, ExtractSection, Input, Merge, Replace, TemplatizeIpAddress, TemplatizeValue, ValidationError
Class Method Summary
collapse
Instance Method Summary
collapse
included
Class Method Details
.description(description) ⇒ Object
46
47
48
|
# File 'lib/mantra/transform.rb', line 46
def self.description(description)
@description = description
end
|
36
37
38
39
40
41
42
43
44
|
# File 'lib/mantra/transform.rb', line 36
def self.input(name, options={type: :string})
self.inputs[name] = Input.create(options)
define_method name do
self.options[name]
end
define_method "#{name}_defined?" do
!self.options[name].nil?
end
end
|
32
33
34
|
# File 'lib/mantra/transform.rb', line 32
def self.inputs
@inputs ||= {}
end
|
Instance Method Details
#ensure_yml_file_exist(path) ⇒ Object
68
69
70
71
72
73
74
|
# File 'lib/mantra/transform.rb', line 68
def ensure_yml_file_exist(path)
return if File.exist?(path)
pathname = Pathname.new(path)
directory = pathname.dirname
FileUtils.mkdir_p(directory)
File.open(path, "w+") { |file| file.write({}.to_yaml) }
end
|
82
83
84
85
86
|
# File 'lib/mantra/transform.rb', line 82
def merge_tool
return @merge_tool unless @merge_tool.nil?
merge_tool_type = self.options[:merge_tool] || :spiff
@merge_tool = MergeTool.create(type: merge_tool_type)
end
|
64
65
66
|
# File 'lib/mantra/transform.rb', line 64
def perform
raise "not implemented"
end
|
96
97
98
|
# File 'lib/mantra/transform.rb', line 96
def previous_transform
self.options[:previous_transform]
end
|
#raise_error_if_no_source_manifest ⇒ Object
76
77
78
79
80
|
# File 'lib/mantra/transform.rb', line 76
def raise_error_if_no_source_manifest
if self.source.nil? || !File.exist?(self.source)
raise Manifest::FileNotFoundError.new("Source manifest does not exist: #{self.source.inspect}")
end
end
|
#run ⇒ Object
50
51
52
53
|
# File 'lib/mantra/transform.rb', line 50
def run
validate_inputs
self.perform
end
|
#source_manifest ⇒ Object
88
89
90
|
# File 'lib/mantra/transform.rb', line 88
def source_manifest
@source_manifest ||= Manifest.new(self.source)
end
|
#target_manifest ⇒ Object
92
93
94
|
# File 'lib/mantra/transform.rb', line 92
def target_manifest
@target_manifest ||= Manifest.new(self.target)
end
|
55
56
57
58
59
60
61
62
|
# File 'lib/mantra/transform.rb', line 55
def validate_inputs
self.class.inputs.each_pair do |name, input|
input_value = self.options[name]
input.validate_required(input_value, name) if input.required?
input_value = self.options[name]
input.validate(input_value, name)
end
end
|