Module: AMA::Entity::Mapper::Mixin::Errors

Overview

Simple mixin that provides shortcuts for raising common errors

Instance Method Summary collapse

Instance Method Details

#compliance_error(message, **options) ⇒ Object

Parameters:

  • message (String)


# File 'lib/ama-entity-mapper/mixin/errors.rb', line 20

#mapping_error(message, **options) ⇒ Object

Parameters:

  • message (String)


# File 'lib/ama-entity-mapper/mixin/errors.rb', line 17

#raise_if_internal(e) ⇒ Object

Raises error again if this is an internal error

Parameters:

  • e (Exception)


48
49
50
# File 'lib/ama-entity-mapper/mixin/errors.rb', line 48

def raise_if_internal(e)
  raise e if e.is_a?(Mapper::Error)
end

#validation_error(message, **options) ⇒ Object

Parameters:

  • message (String)


25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
# File 'lib/ama-entity-mapper/mixin/errors.rb', line 25

error_types.each do |type|
  method = "#{type.to_s.downcase}_error"
  error_class = error_namespace.const_get("#{type}Error")
  define_method method do |message, **options|
    parent_error = options[:parent]
    unless parent_error.nil?
      if options[:signature] && parent_error.is_a?(ArgumentError)
        message += '.' if /\w$/ =~ message
        message += ' Does called method have signature ' \
          "#{options[:signature]}?"
      end
      message += '.' if /\w$/ =~ message
      message += " Parent error: #{parent_error.message}"
    end
    if options[:context]
      message += " (path: #{options[:context].path})"
    end
    raise error_class, message
  end
end