X-Git-Url: https://git.openstreetmap.org/rails.git/blobdiff_plain/b2e9d8176b1e66356330230ee892d7204dd8eeca..a543e731c0433b2aa0f0f1583f7c70182a084fd5:/vendor/plugins/rails-i18n/test/lib/key_structure.rb diff --git a/vendor/plugins/rails-i18n/test/lib/key_structure.rb b/vendor/plugins/rails-i18n/test/lib/key_structure.rb deleted file mode 100644 index aeb71651f..000000000 --- a/vendor/plugins/rails-i18n/test/lib/key_structure.rb +++ /dev/null @@ -1,89 +0,0 @@ -$KCODE = 'u' - -require 'rubygems' -require 'i18n' - -module I18n - module Backend - class Simple - public :translations, :init_translations - end - end -end - -class KeyStructure - attr_reader :result - - def initialize(locale) - @locale = locale.to_sym - init_backend - - @reference = I18n.backend.translations[:'en'] - @data = I18n.backend.translations[@locale] - - @result = {:bogus => [], :missing => [], :pluralization => []} - @key_stack = [] - end - - def run - compare :missing, @reference, @data - compare :bogus, @data, @reference - end - - def output - [:missing, :bogus, :pluralization].each do |direction| - next unless result[direction].size > 0 - case direction - when :pluralization - puts "\nThe following pluralization keys seem to differ:" - else - puts "\nThe following keys seem to be #{direction} for #{@locale.inspect}:" - end - puts ' ' + result[direction].join("\n ") - end - if result.map{|k, v| v.size == 0}.uniq == [true] - puts "No inconsistencies found." - end - puts "\n" - end - - protected - - def compare(direction, reference, data) - reference.each do |key, value| - if data.has_key?(key) - @key_stack << key - if namespace?(value) - compare direction, value, (namespace?(data[key]) ? data[key] : {}) - elsif pluralization?(value) - compare :pluralization, value, (pluralization?(data[key]) ? data[key] : {}) - end - @key_stack.pop - else - @result[direction] << current_key(key) - end - end - end - - def current_key(key) - (@key_stack.dup << key).join('.') - end - - def namespace?(hash) - Hash === hash and !pluralization?(hash) - end - - def pluralization?(hash) - Hash === hash and hash.has_key?(:one) and hash.has_key?(:other) - end - - def init_backend - I18n.load_path = %W( - rails/action_view.yml - rails/active_record.yml - rails/active_support.yml - ) - I18n.load_path += Dir["locale/#{@locale}.{rb,yml}"] - I18n.backend.init_translations - end -end