Sha256: d25920687f7a77a806effd3181bb93030228fcee2a576f53d199f34b6d3ed4bc

Contents?: true

Size: 1.14 KB

Versions: 76

Compression:

Stored size: 1.14 KB

Contents

# A simple exception handler that behaves like the default exception handler
# but additionally logs missing translations to a given log.
#
# Useful for identifying missing translations during testing.
#
# E.g.
#
#   require 'globalize/i18n/missing_translations_log_handler'
#   I18n.missing_translations_logger = RAILS_DEFAULT_LOGGER
#   I18n.exception_handler = :missing_translations_log_handler
#
# To set up a different log file:
#
#   logger = Logger.new("#{RAILS_ROOT}/log/missing_translations.log")
#   I18n.missing_translations_logger = logger

module I18n
  @@missing_translations_logger = nil

  class << self
    def missing_translations_logger
      @@missing_translations_logger ||= begin
        require 'logger' unless defined?(Logger)
        Logger.new(STDOUT)
      end
    end

    def missing_translations_logger=(logger)
      @@missing_translations_logger = logger
    end

    def missing_translations_log_handler(exception, locale, key, options)
      if MissingTranslationData === exception
        missing_translations_logger.warn(exception.message)
        return exception.message
      else
        raise exception
      end
    end
  end
end

Version data entries

76 entries across 75 versions & 12 rubygems

Version Path
globalize-7.0.0 lib/i18n/missing_translations_log_handler.rb
globalize-6.3.0 lib/i18n/missing_translations_log_handler.rb
globalize-6.2.1 lib/i18n/missing_translations_log_handler.rb
globalize-6.2.0 lib/i18n/missing_translations_log_handler.rb
globalize-6.1.0 lib/i18n/missing_translations_log_handler.rb
globalize-6.0.1 lib/i18n/missing_translations_log_handler.rb
globalize-6.0.0 lib/i18n/missing_translations_log_handler.rb
globalize-5.3.1 lib/i18n/missing_translations_log_handler.rb
globalize-6.0.0.alpha.1 lib/i18n/missing_translations_log_handler.rb
globalize-danibachar-5.2.0 lib/i18n/missing_translations_log_handler.rb
globalize-5.3.0 lib/i18n/missing_translations_log_handler.rb
globalize-5.2.0 lib/i18n/missing_translations_log_handler.rb
globalize-5.1.0 lib/i18n/missing_translations_log_handler.rb
globalize-5.1.0.beta2 lib/i18n/missing_translations_log_handler.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/globalize-5.0.1/lib/i18n/missing_translations_log_handler.rb
enju_leaf-1.2.1 vendor/bundle/ruby/2.3/gems/globalize-5.1.0.beta1/lib/i18n/missing_translations_log_handler.rb
globalize-5.1.0.beta1 lib/i18n/missing_translations_log_handler.rb
globalize-rails5-5.1.0 lib/i18n/missing_translations_log_handler.rb
globalize-r5-5.1.0 lib/i18n/missing_translations_log_handler.rb
globalize-3.0.5 lib/i18n/missing_translations_log_handler.rb