class Xembly::AddIf

ADDIF directive

Public Class Methods

new(name) click to toggle source

Ctor.

name

Node name to add

# File lib/xembly/addif.rb, line 32
def initialize(name)
  @name = name
end

Public Instance Methods

exec(dom, cursor) click to toggle source
# File lib/xembly/addif.rb, line 36
def exec(dom, cursor)
  after = []
  cursor.each do |node|
    if node.element_children.none? { |e| e.name == @name }
      child = Nokogiri::XML::Node.new(@name, dom)
      node.add_child(child)
      after.push(child)
      Xembly.log.info "node \"#{@name}\" added to \"#{node.name}\""
    else
      after.push(node)
    end
  end
  after
end