Module: Sidekiq::Tasks::Validations

Included in:
Config, Strategies::Base, Task, TaskMetadata
Defined in:
lib/sidekiq/tasks/validations.rb

Class Method Summary collapse

Class Method Details

.validate_array_classes!(objects, classes, name = nil) ⇒ Object



15
16
17
18
19
# File 'lib/sidekiq/tasks/validations.rb', line 15

def validate_array_classes!(objects, classes, name = nil)
  validate_class!(objects, [Array], name)

  objects.each { |object| validate_class!(object, classes) }
end

.validate_class!(object, classes, name = nil) ⇒ Object



4
5
6
7
8
9
10
11
12
# File 'lib/sidekiq/tasks/validations.rb', line 4

def validate_class!(object, classes, name = nil)
  return if classes.any? { |klass| object.is_a?(klass) }

  expected_classes = classes.map(&:name).join(" or ")
  name ||= object

  raise Sidekiq::Tasks::ArgumentError,
        "'#{name}' must be an instance of #{expected_classes} but received #{object.class}"
end

.validate_expected_values!(value, expected_values, name = nil) ⇒ Object



28
29
30
31
32
33
# File 'lib/sidekiq/tasks/validations.rb', line 28

def validate_expected_values!(value, expected_values, name = nil)
  return if expected_values.any? { |expected_value| value == expected_value }

  raise Sidekiq::Tasks::ArgumentError,
        "'#{name}' must be one of #{expected_values.map(&:inspect).join(" or ")} but received #{value.inspect}"
end

.validate_hash_option!(options, key, classes = []) ⇒ Object



22
23
24
25
# File 'lib/sidekiq/tasks/validations.rb', line 22

def validate_hash_option!(options, key, classes = [])
  validate_class!(options, [Hash])
  validate_class!(options[key], classes, key)
end