Merge remote-tracking branch 'github/pull/477'
[chef.git] / cookbooks / munin / libraries / expand.rb
index 9269761f9ba1fa9d0e212040fc6fd88895f551d4..248c5ad5f07e4986dd9ff1e8100a8c05311b884d 100644 (file)
@@ -1,13 +1,17 @@
 class Chef
   class Munin
-    def self.expand(template, nodes)
-      nodes.map do |node| 
-        if node.kind_of?(Hash)
-          template.gsub(/%%([^%]+)%%/) { node[$1.to_sym] }
+    def self.expand(template, nodes, separator = " ")
+      nodes.map do |node|
+        if node.is_a?(Hash)
+          template
+            .gsub(/%%%([^%]+)%%%/) { node[Regexp.last_match[1].to_sym].tr("-", "_") }
+            .gsub(/%%([^%]+)%%/) { node[Regexp.last_match[1].to_sym] }
         else
-          template.gsub("%%", node)
+          template
+            .gsub("%%%", node.tr("-", "_"))
+            .gsub("%%", node)
         end
-      end.join(" ")
+      end.join(separator)
     end
-  end 
+  end
 end