Advertisement
Guest User

Untitled

a guest
Sep 24th, 2017
53
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.86 KB | None | 0 0
  1. require 'yaml'
  2. def putsheader(keys)
  3. output_line = ''
  4. keys.each do |key|
  5. output_line = key + "\t"
  6. end
  7. output_line << "\n"
  8. end
  9.  
  10. def putsdata(data_values)
  11. output_line = ''
  12. data_values.values.each do |data|
  13. output_line = data + "\t"
  14. end
  15. output_line << "\n"
  16. end
  17.  
  18. def yml_to_tsv(input, output)
  19. yaml_data = YAML.load_file(input)
  20. yaml_keys = yaml_data[1].keys
  21. write_file = nil
  22. write_file = File.open(output, 'w') unless output.nil?
  23. case write_file
  24. when nil
  25. puts(putsheader(yaml_keys)) # also put data
  26. (0...yaml_data.size).each do |line_number|
  27. puts(putsdata(yaml_data[line_number]))
  28. end
  29. else write_file.write(putsheader(yaml_keys))
  30. (0...yaml_data.size).each do |line_number|
  31. write_file.write(putsdata(yaml_data[line_number]))
  32. end
  33. end
  34. end
  35.  
  36. input = ARGV[0]
  37. output = ARGV[1]
  38.  
  39. yml_to_tsv(input, output) unless input.nil?
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement