Class: Bosh::Director::DiffLines
- Defined in:
- lib/bosh/director/manifest/diff_lines.rb
Constant Summary collapse
- MANIFEST_KEYS_ORDER =
%w( azs vm_types resource_pools compilation networks disk_types disk_pools name director_uuid stemcells releases update jobs )
- REDACT_KEY_NAMES =
%w( properties bosh )
Instance Method Summary collapse
Methods inherited from Array
Instance Method Details
#order ⇒ Object
36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/bosh/director/manifest/diff_lines.rb', line 36 def order sections = {} key = nil self.each do |line| if line.indent == 0 && line.text !~ /^[ -]/ key = line.text sections[key] = [] end sections[key] << line end ordered_lines = [] MANIFEST_KEYS_ORDER.each do |manifest_key| section_name = manifest_key + ':' lines = sections[section_name] ordered_lines += lines.to_a sections.delete(section_name) end sections.each do |_, section_lines| section_lines.each do |line| ordered_lines << line end end self.replace(ordered_lines) end |
#redact_properties ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 |
# File 'lib/bosh/director/manifest/diff_lines.rb', line 66 def redact_properties i = 0 while i < self.size line = self[i] if REDACT_KEY_NAMES.any? { |key_name| line.text =~ /\b#{key_name}:/ } properties_indent = line.full_indent i += 1 line = self[i] while line && line.full_indent > properties_indent line.text.gsub!(/: .+/, ': <redacted>') # readact hash values line.text.gsub!(/- [^:]+$/, '- <redacted>') # redact array values i += 1 line = self[i] end end i += 1 end self end |