Sha256: 0bf8c38785e4bc42c55a03a98602c92b204a7ef74ff116747626aab7acb90f7e

Contents?: true

Size: 1.01 KB

Versions: 24

Compression:

Stored size: 1.01 KB

Contents

#
# Simple middleware to save the current locale and restore it when the job executes.
# Use it by requiring it in your initializer:
#
#     require 'sidekiq/middleware/i18n'
#
module Sidekiq::Middleware::I18n
  # Get the current locale and store it in the message
  # to be sent to Sidekiq.
  class Client
    def call(worker_class, msg, queue, redis_pool)
      msg['locale'] ||= I18n.locale
      yield
    end
  end

  # Pull the msg locale out and set the current thread to use it.
  class Server
    def call(worker, msg, queue)
      I18n.locale = msg['locale'] || I18n.default_locale
      yield
    ensure
      I18n.locale = I18n.default_locale
    end
  end
end

Sidekiq.configure_client do |config|
  config.client_middleware do |chain|
    chain.add Sidekiq::Middleware::I18n::Client
  end
end

Sidekiq.configure_server do |config|
  config.client_middleware do |chain|
    chain.add Sidekiq::Middleware::I18n::Client
  end
  config.server_middleware do |chain|
    chain.add Sidekiq::Middleware::I18n::Server
  end
end

Version data entries

24 entries across 24 versions & 1 rubygems

Version Path
sidekiq-4.1.1 lib/sidekiq/middleware/i18n.rb
sidekiq-4.1.0 lib/sidekiq/middleware/i18n.rb
sidekiq-3.5.4 lib/sidekiq/middleware/i18n.rb
sidekiq-4.0.2 lib/sidekiq/middleware/i18n.rb
sidekiq-4.0.1 lib/sidekiq/middleware/i18n.rb
sidekiq-4.0.0 lib/sidekiq/middleware/i18n.rb
sidekiq-4.0.0.pre2 lib/sidekiq/middleware/i18n.rb
sidekiq-3.5.3 lib/sidekiq/middleware/i18n.rb
sidekiq-4.0.0.pre1 lib/sidekiq/middleware/i18n.rb
sidekiq-3.5.2 lib/sidekiq/middleware/i18n.rb
sidekiq-3.5.1 lib/sidekiq/middleware/i18n.rb
sidekiq-3.5.0 lib/sidekiq/middleware/i18n.rb
sidekiq-3.4.2 lib/sidekiq/middleware/i18n.rb
sidekiq-3.4.1 lib/sidekiq/middleware/i18n.rb
sidekiq-3.4.0 lib/sidekiq/middleware/i18n.rb
sidekiq-3.3.4 lib/sidekiq/middleware/i18n.rb
sidekiq-3.3.3 lib/sidekiq/middleware/i18n.rb
sidekiq-3.3.2 lib/sidekiq/middleware/i18n.rb
sidekiq-3.3.1 lib/sidekiq/middleware/i18n.rb
sidekiq-3.3.0 lib/sidekiq/middleware/i18n.rb