Class: CDC::Core::ProcessorResult
- Inherits:
-
Object
- Object
- CDC::Core::ProcessorResult
- Defined in:
- lib/cdc/core/processor_result.rb
Overview
Result returned by processors and pipelines.
ProcessorResult standardizes processor outcomes so callers can distinguish successful processing, skipped events, and failures without relying on processor-specific return values.
Instance Attribute Summary collapse
- #error ⇒ Symbol, ... readonly
- #event ⇒ Symbol, ... readonly
- #metadata ⇒ Symbol, ... readonly
- #status ⇒ Symbol, ... readonly
Class Method Summary collapse
-
.failure(error, event: nil, metadata: {}) ⇒ ProcessorResult
Build a failure result.
-
.skipped(event = nil, metadata: {}) ⇒ ProcessorResult
Build a skipped result.
-
.success(event = nil, metadata: {}) ⇒ ProcessorResult
Build a successful result.
Instance Method Summary collapse
-
#failure? ⇒ Boolean
True when status is :failure.
-
#initialize(status, event: nil, error: nil, metadata: {}) ⇒ ProcessorResult
constructor
Build a processor result with an explicit status.
-
#skipped? ⇒ Boolean
True when status is :skipped.
-
#success? ⇒ Boolean
True when status is :success.
Constructor Details
#initialize(status, event: nil, error: nil, metadata: {}) ⇒ ProcessorResult
Build a processor result with an explicit status.
45 46 47 48 49 50 51 |
# File 'lib/cdc/core/processor_result.rb', line 45 def initialize(status, event: nil, error: nil, metadata: {}) @status = status.to_sym @event = event @error = error @metadata = .is_a?(EventMetadata) ? : EventMetadata.new() Ractor.make_shareable(self) unless error end |
Instance Attribute Details
#error ⇒ Symbol, ... (readonly)
15 16 17 |
# File 'lib/cdc/core/processor_result.rb', line 15 def error @error end |
#event ⇒ Symbol, ... (readonly)
15 16 17 |
# File 'lib/cdc/core/processor_result.rb', line 15 def event @event end |
#metadata ⇒ Symbol, ... (readonly)
15 16 17 |
# File 'lib/cdc/core/processor_result.rb', line 15 def @metadata end |
#status ⇒ Symbol, ... (readonly)
15 16 17 |
# File 'lib/cdc/core/processor_result.rb', line 15 def status @status end |
Class Method Details
.failure(error, event: nil, metadata: {}) ⇒ ProcessorResult
Build a failure result.
30 |
# File 'lib/cdc/core/processor_result.rb', line 30 def self.failure(error, event: nil, metadata: {}) = new(:failure, event:, error:, metadata:) |
.skipped(event = nil, metadata: {}) ⇒ ProcessorResult
Build a skipped result.
37 |
# File 'lib/cdc/core/processor_result.rb', line 37 def self.skipped(event = nil, metadata: {}) = new(:skipped, event:, metadata:) |
.success(event = nil, metadata: {}) ⇒ ProcessorResult
Build a successful result.
22 |
# File 'lib/cdc/core/processor_result.rb', line 22 def self.success(event = nil, metadata: {}) = new(:success, event:, metadata:) |
Instance Method Details
#failure? ⇒ Boolean
Returns true when status is :failure.
57 |
# File 'lib/cdc/core/processor_result.rb', line 57 def failure? = status == :failure |
#skipped? ⇒ Boolean
Returns true when status is :skipped.
60 |
# File 'lib/cdc/core/processor_result.rb', line 60 def skipped? = status == :skipped |
#success? ⇒ Boolean
Returns true when status is :success.
54 |
# File 'lib/cdc/core/processor_result.rb', line 54 def success? = status == :success |