Class: Olyx::Guardrails::Rails::JobReference

Inherits:
Object
  • Object
show all
Defined in:
lib/olyx/guardrails/rails/job_reference.rb

Overview

Validates and resolves an Active Job class reference.

Constant Summary collapse

NAME =
/\A[A-Z]\w*(?:::[A-Z]\w*)*\z/

Instance Method Summary collapse

Constructor Details

#initialize(job) ⇒ JobReference

Returns a new instance of JobReference.



12
13
14
# File 'lib/olyx/guardrails/rails/job_reference.rb', line 12

def initialize(job)
  @job = normalize(job)
end

Instance Method Details

#resolveObject

Raises:

  • (ArgumentError)


16
17
18
19
20
21
# File 'lib/olyx/guardrails/rails/job_reference.rb', line 16

def resolve
  target = @job.is_a?(String) ? ConstantResolver.call(@job) : @job
  return target if target.respond_to?(:perform_later)

  raise ArgumentError, 'configured job must respond to perform_later'
end