in Chef_Processors/ChefArray.py [0:0]
def main(self):
beginning_bracket = "[\n"
iterator = "item"
end_bracket = "]"
each_text = ".each do |%s|\n" % iterator
quotes = "'"
itemlist = list()
# Are we going to use wrapping quotes?
if self.env.get("no_wrap_quotes"):
quotes = ""
# Check to see if one item was passed as a single string
if isinstance(self.env["item_list"], basestring):
if self.env["remove_version"]:
# Remove the ['version'] text from the string
version_string = "['%s']" % self.env["remove_version"]
if version_string in self.env["item_list"]:
self.env["item_list"] = self.env["item_list"].replace(
version_string, ""
)
self.env["array_block"] = self.env["item_list"] + each_text
else:
itemlist = self.env["item_list"]
# Begin the block
self.env["array_block"] = beginning_bracket
# Loop through the array of items
for item in itemlist:
self.output("Item: %s" % item)
self.env["array_block"] += " %s%s%s,\n" % (quotes, str(item), quotes)
# End the block
self.env["array_block"] += end_bracket
# Remove the trailing comma on the last item
self.env["array_block"] = self.env["array_block"].replace(",\n]", "\n]")
self.env["array_block"] += each_text
self.output("Chef block: \n%s" % self.env["array_block"])