Module: Performify::Validation::InstanceMethods

Defined in:
lib/performify/validation.rb

Instance Method Summary collapse

Instance Method Details

#errorsObject



46
47
48
# File 'lib/performify/validation.rb', line 46

def errors
  @errors ||= {}
end

#errors!(new_errors) ⇒ Object

Raises:

  • (ArgumentError)


38
39
40
41
42
43
44
# File 'lib/performify/validation.rb', line 38

def errors!(new_errors)
  raise ArgumentError, 'Errors should be a hash' if new_errors.nil? || !new_errors.respond_to?(:to_h)

  new_errors.to_h.each do |key, value|
    errors[key] = errors.key?(key) ? [errors[key]].flatten(1) + [value].flatten(1) : value
  end
end

#errors?Boolean

Returns:

  • (Boolean)


50
51
52
# File 'lib/performify/validation.rb', line 50

def errors?
  errors.any?
end

#schemaObject



21
22
23
# File 'lib/performify/validation.rb', line 21

def schema
  self.class.schema
end

#validateObject



25
26
27
28
29
30
31
32
33
34
35
36
# File 'lib/performify/validation.rb', line 25

def validate
  return args if schema.nil?

  result = schema.call(args)

  if result.success?
    @inputs = result.output
  else
    errors!(result.errors)
  end
  result.output
end