class Sidekiq::Superworker::Worker

Public Class Methods

create(*args, &block) click to toggle source
# File lib/sidekiq/superworker/worker.rb, line 10
def self.create(*args, &block)
  raise NoMethodError.new("Superworker.create has been replaced by Superworker.define.\nPlease see 'Upgrading to 1.x' at https://github.com/socialpandas/sidekiq-superworker.\nSuperworker.create called at #{caller[0]}")
end
define(*args, &block) click to toggle source
# File lib/sidekiq/superworker/worker.rb, line 4
def self.define(*args, &block)
  class_name = args.shift.to_sym
  nested_hash = DSLParser.new.parse(block)
  define_class(class_name, args, nested_hash)
end

Protected Class Methods

define_class(class_name, arg_keys, nested_hash) click to toggle source
# File lib/sidekiq/superworker/worker.rb, line 16
def self.define_class(class_name, arg_keys, nested_hash)
  klass = Class.new(Sidekiq::Superworker::WorkerClass) do
    @class_name = class_name
    @arg_keys = arg_keys
    @nested_hash = nested_hash
  end

  class_components = class_name.to_s.split('::')
  class_name = class_components.pop
  module_name = class_components.join('::')

  if module_name.empty?
    Object.const_set(class_name, klass)
  else
    module_name.constantize.const_set(class_name, klass)
  end
end