Module: ActiveJob::Temporal::ConditionalEnqueue
- Extended by:
- ActiveSupport::Concern
- Defined in:
- lib/activejob/temporal/conditional_enqueue.rb
Overview
Adds conditional enqueue helpers to ActiveJob classes.
Class Method Summary collapse
- .condition_allows_enqueue?(receiver, condition, arguments) ⇒ Boolean
- .evaluate_condition(receiver, condition, arguments) ⇒ Object
- .job_arguments(arguments, keyword_arguments) ⇒ Object
Class Method Details
.condition_allows_enqueue?(receiver, condition, arguments) ⇒ Boolean
18 19 20 |
# File 'lib/activejob/temporal/conditional_enqueue.rb', line 18 def self.condition_allows_enqueue?(receiver, condition, arguments) !!evaluate_condition(receiver, condition, arguments) end |
.evaluate_condition(receiver, condition, arguments) ⇒ Object
22 23 24 25 26 27 |
# File 'lib/activejob/temporal/conditional_enqueue.rb', line 22 def self.evaluate_condition(receiver, condition, arguments) return receiver.public_send(condition, arguments) if condition.is_a?(Symbol) || condition.is_a?(String) return condition.call(arguments) if condition.respond_to?(:call) raise ArgumentError, "condition must be a Symbol, String, or respond to #call" end |
.job_arguments(arguments, keyword_arguments) ⇒ Object
12 13 14 15 16 |
# File 'lib/activejob/temporal/conditional_enqueue.rb', line 12 def self.job_arguments(arguments, keyword_arguments) return arguments if keyword_arguments.empty? arguments + [keyword_arguments] end |