!!! XML %firewalls

- elements.each do |firewall|
  %irewall{:href => firewall_url(firewall.id), :id => firewall.id}
    %ctions
      %ink{ :rel => :destroy, :href => destroy_firewall_url(firewall.id), :method => :delete, :id => firewall.id}
      %ink{ :rel => :add_rule, :href => "#{firewall_url(firewall.name)}/rules", :method => :post, :id => firewall.id}
    - firewall.attributes.select{ |attr| attr != :id && attr!= :rules}.each do |attribute|
      - haml_tag("#{attribute}".tr('-', '_'), :<) do
        - if [:name, :description].include?(attribute)
          =cdata do
            - haml_concat firewall.send(attribute)
        - else
          - haml_concat firewall.send(attribute)
    %rles
      - firewall.rules.each do |rule|
        %rle{:id => rule.id}
          %ctions
            %ink{ :rel => :rule, :href => "#{firewall_url(firewall.name)}/#{rule.id}", :method => :delete, :id =>rule.id, :rel => :destroy }
          - rule.attributes.select{|attr| attr != :sources && attr != :id}.each do |rule_attrib|
            - haml_tag("#{rule_attrib}".tr('-', '_'), :<) do
              - haml_concat rule.send(rule_attrib)
          %surces
            - rule.sources.each do |source|
              - if source[:type] == "group"
                %surce{:name => source[:name], :type=> source[:type], :owner=> source[:owner]}
              - else
                %surce{:prefix => source[:prefix], :address=> source[:address], :family=>source[:family], :type => source[:type]}