Class: ActiveInteractor::Result
- Inherits:
-
Object
- Object
- ActiveInteractor::Result
- Extended by:
- ActiveModel::Naming
- Defined in:
- lib/active_interactor/result.rb
Constant Summary collapse
- STATUS =
{ success: 0, failed_at_input: 1, failed_at_runtime: 2, failed_at_output: 3 }.freeze
Instance Attribute Summary collapse
-
#data ⇒ Object
readonly
Returns the value of attribute data.
-
#errors ⇒ Object
readonly
Returns the value of attribute errors.
Class Method Summary collapse
- .failure(data: {}, errors: {}, status: STATUS[:failed_at_runtime]) ⇒ Object
- .human_attribute_name(attribute, _options = {}) ⇒ Object
- .lookup_ancestors ⇒ Object
- .success(data: {}) ⇒ Object
Instance Method Summary collapse
- #failure? ⇒ Boolean (also: #failed?)
-
#initialize(status:, data: {}) ⇒ Result
constructor
A new instance of Result.
- #read_attribute_for_validation(attribute_name) ⇒ Object
- #success? ⇒ Boolean (also: #successful?)
Constructor Details
#initialize(status:, data: {}) ⇒ Result
Returns a new instance of Result.
53 54 55 56 57 |
# File 'lib/active_interactor/result.rb', line 53 def initialize(status:, data: {}) @status = status @data = data @errors = ActiveModel::Errors.new(self) end |
Instance Attribute Details
#data ⇒ Object (readonly)
Returns the value of attribute data.
14 15 16 |
# File 'lib/active_interactor/result.rb', line 14 def data @data end |
#errors ⇒ Object (readonly)
Returns the value of attribute errors.
14 15 16 |
# File 'lib/active_interactor/result.rb', line 14 def errors @errors end |
Class Method Details
.failure(data: {}, errors: {}, status: STATUS[:failed_at_runtime]) ⇒ Object
21 22 23 24 25 26 27 |
# File 'lib/active_interactor/result.rb', line 21 def failure(data: {}, errors: {}, status: STATUS[:failed_at_runtime]) result = new(status: status, data: data) parse_errors(errors).each_pair do |attribute, | Array.wrap().each { || result.errors.add(attribute, ) } end result end |
.human_attribute_name(attribute, _options = {}) ⇒ Object
29 30 31 |
# File 'lib/active_interactor/result.rb', line 29 def human_attribute_name(attribute, = {}) attribute.respond_to?(:to_s) ? attribute.to_s.humanize : attribute end |
.lookup_ancestors ⇒ Object
33 34 35 |
# File 'lib/active_interactor/result.rb', line 33 def lookup_ancestors [self] end |
.success(data: {}) ⇒ Object
17 18 19 |
# File 'lib/active_interactor/result.rb', line 17 def success(data: {}) new(status: STATUS[:success], data: data) end |
Instance Method Details
#failure? ⇒ Boolean Also known as: failed?
59 60 61 |
# File 'lib/active_interactor/result.rb', line 59 def failure? !success? end |
#read_attribute_for_validation(attribute_name) ⇒ Object
64 65 66 |
# File 'lib/active_interactor/result.rb', line 64 def read_attribute_for_validation(attribute_name) data[attribute_name] end |
#success? ⇒ Boolean Also known as: successful?
68 69 70 |
# File 'lib/active_interactor/result.rb', line 68 def success? @status == STATUS[:success] end |