| 
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57 | # File 'lib/mofa/attributes_map.rb', line 42
def deep_parse(attr_hash, placeholder, content)
  new_attr_hash = Marshal.load(Marshal.dump(attr_hash))
  attr_hash.each do |key, value|
    if value.is_a?(Hash)
      new_attr_hash[key] = deep_parse(value, placeholder, content)
    elsif value.is_a?(Array)
      new_attr_hash[key] = []
      value.each do |value_item|
        new_attr_hash[key].push(value_item.gsub(Regexp.new(Regexp.escape(placeholder)), content))
      end
    else
      new_attr_hash[key] = value.gsub(Regexp.new(Regexp.escape(placeholder)), content)
    end
  end
  new_attr_hash
end |