Sha256: a83bf98ec9ad0c65b1d2858d965cca4660d5c0040f205e6ca9b6a7bedc695a8f

Contents?: true

Size: 997 Bytes

Versions: 1

Compression:

Stored size: 997 Bytes

Contents

require 'i18n'
require 'i18n/debug/version'

module I18n
  module Debug
    @on_lookup = lambda do |key, result|
      logger.debug("[i18n-debug] #{key} => #{result.inspect}")
    end

    class << self
      attr_accessor :logger
      attr_writer :on_lookup

      def logger
        @logger ||=
          if defined?(::Rails) and ::Rails.respond_to?(:logger)
            ::Rails.logger
          else
            require 'logger'
            ::Logger.new($stdout)
          end
      end

      def on_lookup(&blk)
        return @on_lookup unless block_given?
        self.on_lookup = blk
      end
    end

    module Hook
      def lookup(*args)
        super.tap do |result|
          options = args.last.is_a?(Hash) ? args.pop : {}
          separator = options[:separator] || I18n.default_separator
          key = I18n.normalize_keys(*args, separator).join(separator)
          Debug.on_lookup[key, result]
        end
      end
    end
  end

  Backend::Simple.prepend(Debug::Hook)
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
i18n-debug-1.1.1 lib/i18n/debug.rb