Sha256: 44e63617d1525bf5cde5527af9dbc07014ebb78b71cd9a1ced394dd6fd2b0220
Contents?: true
Size: 1.01 KB
Versions: 26
Compression:
Stored size: 1.01 KB
Contents
#!/usr/bin/env ruby require 'json' def resolve_type(object) if object.is_a?(Hash) return 'object' end if object.is_a?(String) return 'string' end if object.is_a?(Array) result = '' result << '(array)' object.each do |item| result << "\n - " + resolve_type(item) end result << "\n" return result end if object.is_a?(Fixnum) return 'integer' end if object.is_a?(TrueClass) return 'boolean' end if object.is_a?(FalseClass) return 'boolean' end if object.is_a?(Float) return 'float' end if object.is_a?(NilClass) return 'null' end return 'unknown' end def parse(hash) result = '' hash.each do |key, value| result << key + ' (' + resolve_type(value) + ")\n" if value.is_a?(Hash) parse(value).each_line do |line| result << "#{key}.#{line}" end end end result end STDIN.each_line do |line| begin hash = JSON.parse(line) puts parse(hash) rescue => e raise e puts e.message end end
Version data entries
26 entries across 26 versions & 1 rubygems