Sha256: e7a1fc5dc653a7256148fddd81b86b18221e76818555d30054db2656a81d9cca
Contents?: true
Size: 896 Bytes
Versions: 1
Compression:
Stored size: 896 Bytes
Contents
module TOML class Dumper attr_reader :toml_str def initialize(hash) @toml_str = "" visit(hash, '') end private def visit(hash, prefix) nested_pairs = [] simple_pairs = [] hash.keys.sort.each do |key| val = hash[key] (val.is_a?(Hash) ? nested_pairs : simple_pairs) << [key, val] end @toml_str += "[#{prefix}]\n" unless prefix.empty? || simple_pairs.empty? # First add simple pairs, under the prefix simple_pairs.each do |pair| @toml_str << "#{pair[0].to_s} = #{to_toml(pair[1])}\n" end nested_pairs.each do |pair| visit(pair[1], prefix.empty? ? pair[0].to_s : [prefix, pair[0]].join('.')) end end def to_toml(obj) case when obj.is_a?(Time) obj.strftime('%Y-%m-%dT%H:%M:%SZ') else obj.inspect end end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
toml-rb-0.1.2 | lib/toml/dumper.rb |