Module: PatientHttp::CallbackValidator

Defined in:
lib/patient_http/callback_validator.rb

Class Method Summary collapse

Class Method Details

.validate!(callback) ⇒ void

This method returns an undefined value.

Validate that the callback class defines the required methods.

Parameters:

  • callback (Class, String)

    the callback class or its name

Raises:

  • (ArgumentError)

    if the callback class is invalid



11
12
13
14
15
16
# File 'lib/patient_http/callback_validator.rb', line 11

def validate!(callback)
  callback_class = callback.is_a?(Class) ? callback : ClassHelper.resolve_class_name(callback)

  validate_callback_method!(callback_class, :on_complete)
  validate_callback_method!(callback_class, :on_error)
end

.validate_callback_args(callback_args) ⇒ Hash?

Validate callback_args and convert to a hash with string keys.

Parameters:

  • callback_args (#to_h, nil)

    the callback arguments

Returns:

  • (Hash, nil)

    validated hash with string keys, or nil

Raises:

  • (ArgumentError)

    if callback_args is invalid



23
24
25
26
27
28
29
30
31
32
33
34
35
# File 'lib/patient_http/callback_validator.rb', line 23

def validate_callback_args(callback_args)
  return nil if callback_args.nil?

  unless callback_args.respond_to?(:to_h)
    raise ArgumentError.new("callback_args must respond to to_h, got #{callback_args.class.name}")
  end

  hash = callback_args.to_h
  hash.each do |key, value|
    CallbackArgs.validate_value!(value, key.to_s)
  end
  hash.transform_keys(&:to_s)
end