Create a gist now

Instantly share code, notes, and snippets.

What would you like to do?
Compares two YAML locale files and displays the difference
# Run: curl | ruby - en fi
require 'rubygems'
require 'yaml'
l1 = ARGV[0]
l2 = ARGV[1]
first = YAML.load_file(l1 + ".yml")
second = YAML.load_file(l2 + ".yml")
def diff(root, compared, structure = [])
root.each_key do |key|
next_root = root[key]
next_compared = compared.nil? ? nil : compared[key]
new_structure = structure.dup << key
if compared.nil? || compared[key].nil?
print "#{new_structure.join(".")}"
print ": \"#{root[key]}\"" if next_root.kind_of? String
print "\n"
diff(next_root, next_compared, new_structure) if next_root.kind_of? Hash
puts "MISSING FROM #{l2}"
diff(first[l1], second[l2], [l2])
puts "\nMISSING FROM #{l1}"
diff(second[l2], first[l1], [l1])

This comment has been minimized.

Show comment Hide comment

pinzer Aug 24, 2017

Thanks a lot!

pinzer commented Aug 24, 2017

Thanks a lot!

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment