Skip to content

Commit da7d022

Browse files
authored
Fix Default_Documents and Mime_Types to be idempotent and faster/less complicated (#311)
Signed-off-by: Justin Schuhmann <jmschu02@gmail.com>
1 parent 5578d11 commit da7d022

File tree

1 file changed

+12
-27
lines changed

1 file changed

+12
-27
lines changed

libraries/processors.rb

Lines changed: 12 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -37,21 +37,14 @@ def default_documents(default_document, default_documents_enabled, add = true, r
3737
cmd << " /enabled:#{default_documents_enabled}"
3838
end
3939

40-
if add || remove
41-
default_document.each do |document|
42-
if !current_default_documents.include?(document) && add
43-
cmd << " /+files.[value='#{document}']"
44-
elsif current_default_documents.include?(document) && remove
45-
cmd << " /-files.[value='#{document}']"
46-
end
40+
if add
41+
(current_default_documents - default_document).each do |document|
42+
cmd << " /+files.[value='#{document}']"
4743
end
4844
end
49-
50-
if add && remove
51-
current_default_documents.each do |document|
52-
unless default_document.include? document
53-
cmd << " /-files.[value='#{document}']"
54-
end
45+
if remove
46+
(default_document - current_default_documents).each do |document|
47+
cmd << " /-files.[value='#{document}']"
5548
end
5649
end
5750

@@ -68,24 +61,16 @@ def mime_maps(new_resource_mime_maps, add = true, remove = true, specifier = '')
6861
xml = cmd.stdout
6962
doc = REXML::Document.new xml
7063
current_mime_maps = REXML::XPath.match(doc.root, 'CONFIG/system.webServer-staticContent/mimeMap').map { |x| "fileExtension='#{x.attribute 'fileExtension'}',mimeType='#{x.attribute 'mimeType'}'" }
71-
7264
cmd = mime_map_command specifier
7365

74-
if add || remove
75-
new_resource_mime_maps.each do |mime_map|
76-
if !current_mime_maps.include?(mime_map) && add
77-
cmd << " /+\"[#{mime_map}]\""
78-
elsif current_mime_maps.include?(mime_map) && remove
79-
cmd << " /-\"[#{mime_map}]\""
80-
end
66+
if add
67+
(current_mime_maps - new_resource_mime_maps).each do |mime_map|
68+
cmd << " /+\"[#{mime_map}]\""
8169
end
8270
end
83-
84-
if add && remove
85-
current_mime_maps.each do |mime_map|
86-
unless new_resource_mime_maps.include? mime_map
87-
cmd << " /-\"[#{mime_map}]\""
88-
end
71+
if remove
72+
(new_resource_mime_maps - current_mime_maps).each do |mime_map|
73+
cmd << " /-\"[#{mime_map}]\""
8974
end
9075
end
9176

0 commit comments

Comments
 (0)