public
Last active

Compares two YAML locale files and displays the difference

  • Download Gist
locale_diff.rb
Ruby
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
# Run: curl https://gist.github.com/raw/719970/locale_diff.rb | 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"
end
diff(next_root, next_compared, new_structure) if next_root.kind_of? Hash
end
end
 
puts "MISSING FROM #{l2}"
diff(first[l1], second[l2], [l2])
 
puts "\nMISSING FROM #{l1}"
diff(second[l2], first[l1], [l1])

Please sign in to comment on this gist.

Something went wrong with that request. Please try again.