Module: ActiveInteractor::Interface

Defined in:
lib/active_interactor.rb

Overview

Interactor interface.

Instance Method Summary collapse

Instance Method Details

#call(*args) ⇒ ActiveInteractor::Result

Parameters:

  • args (Array<(nil)>, Array<(Hash)>)

Returns:

Raises:

  • (ArgumentError)


105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
# File 'lib/active_interactor.rb', line 105

def call(*args)
  raise ArgumentError if args.size > 1
  raise ArgumentError if args.size == 1 && !args.first.is_a?(Hash)

  params = args.extract_options!
  errors.clear

  if params.empty? && !self.class.validation_required?
    super
  else
    params = sanitize(params)
    validate(params)
    super(params) if errors.empty?
  end

  Result.new(result_payload, errors)
end