Sha256: e356dff6556c289a783dfc3267c40ea4221f43d366313458e6f242fc64a338b6

Contents?: true

Size: 1.4 KB

Versions: 19

Compression:

Stored size: 1.4 KB

Contents

module CopyTunerClient
  class TranslationLog
    def self.translations
      Thread.current[:translations]
    end

    def self.clear
      Thread.current[:translations] = {}
    end

    def self.initialized?
      !Thread.current[:translations].nil?
    end

    def self.add(key, result)
      translations[key] = result if initialized? && !translations.key?(key)
    end

    def self.install_hook
      I18n.class_eval do
        class << self
          def translate_with_copy_tuner_hook(*args)
            key = args[0]
            options  = args.last.is_a?(Hash) ? args.last : {}
            scope = options[:scope]
            scope = scope.dup if scope.is_a?(Array) || scope.is_a?(String)
            result = translate_without_copy_tuner_hook(*args)

            if key.is_a?(Array)
              key.zip(result).each { |k, v| CopyTunerClient::TranslationLog.add(I18n.normalize_keys(nil, k, scope).join('.'), v) unless v.is_a?(Array) }
            else
              CopyTunerClient::TranslationLog.add(I18n.normalize_keys(nil, key, scope).join('.'), result) unless result.is_a?(Array)
            end
            result
          end
          if CopyTunerClient.configuration.enable_middleware?
            alias_method :translate_without_copy_tuner_hook, :translate
            alias_method :translate, :translate_with_copy_tuner_hook
            alias :t :translate
          end
        end
      end
    end
  end
end

Version data entries

19 entries across 19 versions & 1 rubygems

Version Path
copy_tuner_client-0.5.3 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.5.2 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.5.1 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.5.0 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.5.0.pre lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.12 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.11 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.10 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.9 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.8 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.7 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.6 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.5 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.4 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.3 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.2 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.1 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.4.0 lib/copy_tuner_client/translation_log.rb
copy_tuner_client-0.3.5 lib/copy_tuner_client/translation_log.rb