Sha256: 321b8ddc8b78f4b758b6b96d84c68f57b2d46708c4aa38feac8f62db8ab579d6

Contents?: true

Size: 765 Bytes

Versions: 1

Compression:

Stored size: 765 Bytes

Contents

require "builder"

class HashToXmlMap
  def initialize(hash_content)
    @hash_content = hash_content
  end

  def render
    map = Builder::XmlMarkup.new(indent: 2)

    map.instruct! :xml, version: "1.0", encoding: "utf-8"
    map.declare! :DOCTYPE, :vymmap
    map.vymmap(version: "2.5.0") do |builder|
      builder.mapcenter do
        if hash_content && !hash_content.empty?
          generate_branch(hash_content, builder)
        end
      end
    end
  end

  private

  def generate_branch(branch, builder)
    branch.each do |title, subbranches|
      builder.heading(title)
      subbranches.each do |subbranch|
        builder.branch do
          generate_branch(subbranch, builder)
        end
      end
    end

  end
  attr_reader :hash_content
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
vym-0.1.4 lib/vym/hash_to_xml_map.rb