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

Version Path
ix-cli-0.0.27 bin/ix-json-paths
ix-cli-0.0.26 bin/ix-json-paths
ix-cli-0.0.25 bin/ix-json-paths
ix-cli-0.0.24 bin/ix-json-paths
ix-cli-0.0.23 bin/ix-json-paths
ix-cli-0.0.22 bin/ix-json-paths
ix-cli-0.0.21 bin/ix-json-paths
ix-cli-0.0.20 bin/ix-json-paths
ix-cli-0.0.19 bin/ix-json-paths
ix-cli-0.0.18 bin/ix-json-paths
ix-cli-0.0.17 bin/ix-json-paths
ix-cli-0.0.16 bin/ix-json-paths
ix-cli-0.0.15 bin/ix-json-paths
ix-cli-0.0.14 bin/ix-json-paths
ix-cli-0.0.13 bin/ix-json-paths
ix-cli-0.0.12 bin/ix-json-paths
ix-cli-0.0.11 bin/ix-json-paths
ix-cli-0.0.10 bin/ix-json-paths
ix-cli-0.0.9 bin/ix-json-paths
ix-cli-0.0.7 bin/ix-json-paths