Class: Foobara::Outcome
- Inherits:
-
Object
show all
- Defined in:
- foobara-0.0.110/projects/common/src/outcome.rb
Defined Under Namespace
Classes: UnsuccessfulOutcomeError
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(result: nil, errors: nil, error_collection: ErrorCollection.new) ⇒ Outcome
Returns a new instance of Outcome.
48
49
50
51
52
53
54
55
56
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 48
def initialize(result: nil, errors: nil, error_collection: ErrorCollection.new)
@error_collection = error_collection
self.result = result
if errors
add_errors(errors)
end
end
|
Instance Attribute Details
#error_collection ⇒ Object
Returns the value of attribute error_collection.
46
47
48
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 46
def error_collection
@error_collection
end
|
#result ⇒ Object
Returns the value of attribute result.
45
46
47
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 45
def result
@result
end
|
Class Method Details
.error(error) ⇒ Object
36
37
38
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 36
def error(error)
errors(Util.array(error))
end
|
.errors(*errors) ⇒ Object
22
23
24
25
26
27
28
29
30
31
32
33
34
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 22
def errors(*errors)
errors = errors.flatten
if errors.empty?
raise "No errors given"
end
new.tap do |outcome|
outcome.add_errors(errors)
end
end
|
.raise!(errors) ⇒ Object
40
41
42
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 40
def raise!(errors)
self.errors(errors).raise! unless errors.empty?
end
|
.success(result) ⇒ Object
16
17
18
19
20
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 16
def success(result)
new.tap do |outcome|
outcome.result = result
end
end
|
Instance Method Details
#error_keys ⇒ Object
103
104
105
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 103
def error_keys
error_collection.keys
end
|
#errors_hash ⇒ Object
95
96
97
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 95
def errors_hash
error_collection.to_h
end
|
#errors_sentence ⇒ Object
99
100
101
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 99
def errors_sentence
error_collection.to_sentence
end
|
#fatal? ⇒ Boolean
70
71
72
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 70
def fatal?
errors.any?(&:fatal?)
end
|
#raise! ⇒ Object
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 74
def raise!
return if success?
error = errors.first
original_backtrace = error.backtrace_when_initialized
if errors.size > 1
error = UnsuccessfulOutcomeError.new(errors)
end
error.set_backtrace(original_backtrace)
error.backtrace_when_raised = caller
raise error
end
|
#result! ⇒ Object
90
91
92
93
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 90
def result!
raise!
result
end
|
#success? ⇒ Boolean
66
67
68
|
# File 'foobara-0.0.110/projects/common/src/outcome.rb', line 66
def success?
!has_errors?
end
|