class VDF::Generator

The Generator class is responsible for generating VDF documents from input hashes. @see VDF.generate

Public Class Methods

generate(object) click to toggle source

Generates a VDF document from a Ruby Hash and returns it

@param object [Hash] the input object @return [String] the generated VDF document

# File lib/vdf/generate.rb, line 11
def generate(object)
        raise ArgumentError, "Object has to respond to each" unless object.respond_to? :each

        generate_impl(object, 0)
end

Private Class Methods

generate_impl(object, level) click to toggle source
# File lib/vdf/generate.rb, line 19
def generate_impl(object, level)
        result = ""
        indent = -"\t"*level

        object.each do |key, value|
                if value.respond_to? :each
                        result << [indent, -'"', key, -"\"\n", indent, -"{\n", generate_impl(value, level + 1), indent, -"}\n"].join
                else
                        result << [indent, -'"', key, -'"', indent, indent, -'"', value.to_s, -"\"\n"].join
                end
        end

        result
end