module TTY::Config::Generator
Public Class Methods
generate(data, separator: "=")
click to toggle source
Generate file content based on the data hash
@param [Hash] data
@return [String]
the file content
@api public
# File lib/tty/config/generator.rb, line 14 def self.generate(data, separator: "=") content = [] values = {} sections = {} data.keys.sort.each do |key| val = data[key] if val.is_a?(NilClass) next elsif val.is_a?(Hash) || (val.is_a?(Array) && val.first.is_a?(Hash)) sections[key] = val elsif val.is_a?(Array) values[key] = val.join(",") else values[key] = val end end # values values.each do |key, val| content << "#{key} #{separator} #{val}" end content << "" unless values.empty? # sections sections.each do |section, object| next if object.empty? # only add section if values present content << "[#{section}]" if object.is_a?(Array) object = object.reduce({}, :merge!) end object.each do |key, val| val = val.join(",") if val.is_a?(Array) content << "#{key} #{separator} #{val}" if val end content << "" end content.join("\n") end