Class: DataModel::Error
- Inherits:
-
Object
show all
- Extended by:
- T::Sig
- Includes:
- Errors
- Defined in:
- lib/data_model/error.rb
Overview
Error is a class that holds errors.
Constant Summary
collapse
- TErrorList =
T.type_alias { T::Array[TError] }
- TErrorMap =
T.type_alias { T::Hash[Symbol, TErrorList] }
Constants included
from Errors
DataModel::Errors::TClassCtx, DataModel::Errors::TClassValueCtx, DataModel::Errors::TErrorMessageBuilder, DataModel::Errors::TErrorMessages, DataModel::Errors::TFormatCtx, DataModel::Errors::TSetCtx, DataModel::Errors::TTemporal, DataModel::Errors::TWithinCtx, DataModel::Errors::TWithinTemporalCtx
Instance Method Summary
collapse
Methods included from Errors
#blank_error, #blank_error_message, #coerce_error, #coerce_error_message, #earliest_error, #early_error_message, error_messages, #exclusion_error, #exclusion_error_message, #extra_keys_error, #extra_keys_error_message, #format_error, #format_error_message, #inclusion_error, #inclusion_error_message, #late_error_message, #latest_error, #max_error, #max_error_message, #min_error, #min_error_message, #missing_error, #missing_error_message, #type_error, #type_error_message
Constructor Details
#initialize ⇒ Error
Returns a new instance of Error.
13
14
15
16
|
# File 'lib/data_model/error.rb', line 13
def initialize
@base = T.let([], TErrorList)
@children = T.let({}, TErrorMap)
end
|
Instance Method Details
#add(err, child: nil) ⇒ Object
64
65
66
67
68
69
70
71
72
73
74
75
|
# File 'lib/data_model/error.rb', line 64
def add(err, child: nil)
if child.is_a?(Array)
child = child.join(".").to_sym
end
if child == :base
raise "child errors may not be named :base"
end
errs = child ? @children[child] ||= [] : @base
errs.push(err)
end
|
#all ⇒ Object
Also known as:
to_h
32
33
34
|
# File 'lib/data_model/error.rb', line 32
def all
return children.merge(base:)
end
|
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'lib/data_model/error.rb', line 40
def any?(&blk)
if !blk
return !@base.empty? || !@children.empty?
end
any = T.let(false, T::Boolean)
for error_list in all.values
any = error_list.any?(&blk)
if any
break
end
end
return any
end
|
#base ⇒ Object
20
21
22
|
# File 'lib/data_model/error.rb', line 20
def base
return @base
end
|
#children ⇒ Object
26
27
28
|
# File 'lib/data_model/error.rb', line 26
def children
return @children
end
|
58
59
60
|
# File 'lib/data_model/error.rb', line 58
def empty?
!any?
end
|
#merge_child(name, child) ⇒ Object
78
79
80
81
82
83
84
85
86
87
88
|
# File 'lib/data_model/error.rb', line 78
def merge_child(name, child)
if !child.any?
return
end
for (key, error_list) in child.all
for error in error_list
add(error, child: [name, key])
end
end
end
|
#to_messages(registry: Registry.instance) ⇒ Object
91
92
93
|
# File 'lib/data_model/error.rb', line 91
def to_messages(registry: Registry.instance)
return registry.error_messages(self)
end
|