Class: ActiveJob::Temporal::ExternalOperationOptions

Inherits:
Object
  • Object
show all
Defined in:
lib/activejob/temporal/external_operation.rb

Constant Summary collapse

ACTIVITY_OPTION_KEYS =
%i[
  activity_id
  heartbeat_timeout
  retry_policy
  schedule_to_close_timeout
  schedule_to_start_timeout
  start_to_close_timeout
  summary
  task_queue
].freeze
WORKFLOW_OPTION_KEYS =
%i[
  cron_schedule
  execution_timeout
  id
  memo
  retry_policy
  run_timeout
  static_details
  static_summary
  task_queue
  task_timeout
].freeze
DURATION_OPTION_KEYS =
%i[
  execution_timeout
  heartbeat_timeout
  run_timeout
  schedule_to_close_timeout
  schedule_to_start_timeout
  start_to_close_timeout
  task_timeout
].freeze
RETRY_POLICY_DURATION_KEYS =
%i[initial_interval max_interval].freeze

Class Method Summary collapse

Class Method Details

.normalize(operation, options) ⇒ Object



118
119
120
121
122
123
124
125
126
127
128
129
130
# File 'lib/activejob/temporal/external_operation.rb', line 118

def self.normalize(operation, options)
  supported_keys = option_keys_for(operation)
  normalized_options = options.each_with_object({}) do |(key, value), normalized|
    normalized_key = key.to_sym
    unless supported_keys.include?(normalized_key)
      raise ArgumentError, external_options_error(operation, supported_keys)
    end

    normalized[normalized_key] = normalize_option_value(normalized_key, value)
  end
  normalize_task_queue!(normalized_options)
  normalized_options
end