module ActiveJob::Enqueuing::ClassMethods

def job_or_instantiate(*args)

def job_or_instantiate(*args)
  args.first.is_a?(self) ? args.first : new(*args)
end

def perform_later(*args)

Job#arguments.
Returns an instance of the job class queued with arguments available in

are not supported.
GlobalID::Identification instances. Arbitrary Ruby objects
(string, int, float, nil, true, false, hash or array) or
Push a job onto the queue. The arguments must be legal JSON types
def perform_later(*args)
  job_or_instantiate(*args).enqueue
end