module Sidekiq::Symbols::Symbolizer

Public Instance Methods

perform(*args) click to toggle source
Calls superclass method
# File lib/sidekiq/symbols.rb, line 10
def perform(*args)
  symbolized_args = args.map do |arg|
    if __sidekiq_symbols_should_process?(arg)
      __sidekiq_symbols_symbolize_keys(arg)
    else
      arg
    end
  end.to_a
  super(*symbolized_args)
end

Private Instance Methods

__sidekiq_symbols_should_process?(arg) click to toggle source
# File lib/sidekiq/symbols.rb, line 39
def __sidekiq_symbols_should_process?(arg)
  arg.is_a?(Hash) || arg.is_a?(Array)
end
__sidekiq_symbols_symbolize_keys(arg) click to toggle source
# File lib/sidekiq/symbols.rb, line 23
def __sidekiq_symbols_symbolize_keys(arg)
  case arg
  when Hash
    h = {}
    arg.each do |k, v|
      k = k.to_sym if k.respond_to?(:to_sym)
      h[k] = __sidekiq_symbols_should_process?(v) ? __sidekiq_symbols_symbolize_keys(v) : v
    end
    h
  when Array
    arg.map { |v| __sidekiq_symbols_should_process?(v) ? __sidekiq_symbols_symbolize_keys(v) : v }
  else
    arg
  end
end