module UVMWP

Public Instance Methods

add_node(pnode, hash_data, use_old: false) click to toggle source
# File lib/ebngen/adapter/mdk/uvmwp.rb, line 12
def add_node(pnode, hash_data, use_old: false)
    hash_data.each do |key,value|
        if use_old
            sv = pnode.at_xpath(key)
        end
        unless (sv)
            sv = Nokogiri::XML::Node.new(key, xml)
            pnode << sv
        end
        if value.class == Hash
            add_node(sv, value, use_old)
        elsif value.class == Array
            value.each do |va|
                nsv = Nokogiri::XML::Node.new(key, xml)
                sv << nsv
                nsv.content = va                    
            end
        else
            sv.content = value
        end
    end
end
add_project(xml , project_path) click to toggle source
# File lib/ebngen/adapter/mdk/uvmwp.rb, line 61
def add_project(xml , project_path)
    # find <ProjectWorkspace>
    workspace_node = xml.at_xpath("/ProjectWorkspace")
    Core.assert(workspace_node, "no <workspace> present")
    templat_project = workspace_node.at_xpath("project[@template='1']")
    new_project = templat_project.dup
    # add <PathAndName>
    path_node = new_project.at_xpath("PathAndName")
    path_node.content = project_path
    workspace_node << new_project
    new_project.at_xpath("NodeIsActive").content = 0
    new_project.at_xpath("NodeIsExpanded").content = 0
    new_project.remove_attribute("template")
    # add project into existing lists
    #@projects[ project_path ] = project_node
end
init_project_set(xml, settings) click to toggle source
# File lib/ebngen/adapter/mdk/uvmwp.rb, line 47
def init_project_set(xml, settings)
    workspace_node = xml.at_xpath("ProjectWorkspace")
    travesernode(workspace_node)
    workspace_node.set_attribute("xmlns:xsi", "http://www.w3.org/2001/XMLSchema-instance")
    workspace_node.set_attribute("xsi:noNamespaceSchemaLocation","project_mpw.xsd")
    dummy_project = workspace_node.at_xpath("/ProjectWorkspace/project")
    dummy_project.set_attribute("template","1")
    @@data_remove.each do |node|
      nt = workspace_node.at_xpath(node)
      nt.remove if ! nt.nil?
    end
end
save(xml, path) click to toggle source
# File lib/ebngen/adapter/mdk/uvmwp.rb, line 78
def save(xml, path)
        Core.assert(path.is_a?(String)) do
            "param is not a string #{path.class.name}"
        end
workspace_node = xml.at_xpath("/ProjectWorkspace")
Core.assert(workspace_node, "no <workspace> present")
#remove old project
templat_project = workspace_node.at_xpath("project[@template='1']")
templat_project.remove if ! templat_project.nil?
FileUtils.mkdir_p File.dirname(path) if ! File.exist?(File.dirname(path))
        File.write(path, xml.to_xml)
end
travesernode(node) click to toggle source
# File lib/ebngen/adapter/mdk/uvmwp.rb, line 35
def travesernode(node)
    if node.children
        tname  = node.name
        if @@data_provider.has_key?(tname)
            node.content =  @@data_provider[tname]
        end
    end
    node.children.each do |subnode|
        next if subnode.nil?
        travesernode(subnode)
    end
end