Class: Inquirex::Actions::Outbox
- Inherits:
-
Object
- Object
- Inquirex::Actions::Outbox
- Includes:
- Enumerable
- Defined in:
- lib/inquirex/actions/outbox.rb
Overview
Collected output of running a definition's actions: the Mail::Message objects built by send_email effects, plus a per-execution result trail.
The outbox is attached to Answers#outbox and is intentionally excluded from Answers serialization — mail objects never leak into persisted answer data. Delivery is the host application's job:
answers.outbox.each do ||
ActionMailer::Base.wrap_delivery_behavior()
.deliver
end
Defined Under Namespace
Classes: Result
Instance Attribute Summary collapse
-
#messages ⇒ Object
readonly
Returns the value of attribute messages.
-
#results ⇒ Object
readonly
Returns the value of attribute results.
Instance Method Summary collapse
- #add_message(mail) ⇒ Mail::Message
-
#each ⇒ Object
Iterates over built Mail::Message objects.
- #empty? ⇒ Boolean
-
#failures ⇒ Array<Result>
Executions that raised.
-
#initialize ⇒ Outbox
constructor
A new instance of Outbox.
- #record(action_id, status, error: nil) ⇒ Object
-
#size ⇒ Integer
Number of built messages.
Constructor Details
#initialize ⇒ Outbox
Returns a new instance of Outbox.
25 26 27 28 |
# File 'lib/inquirex/actions/outbox.rb', line 25 def initialize @messages = [] @results = [] end |
Instance Attribute Details
#messages ⇒ Object (readonly)
Returns the value of attribute messages.
23 24 25 |
# File 'lib/inquirex/actions/outbox.rb', line 23 def @messages end |
#results ⇒ Object (readonly)
Returns the value of attribute results.
23 24 25 |
# File 'lib/inquirex/actions/outbox.rb', line 23 def results @results end |
Instance Method Details
#add_message(mail) ⇒ Mail::Message
32 33 34 35 |
# File 'lib/inquirex/actions/outbox.rb', line 32 def (mail) @messages << mail mail end |
#each ⇒ Object
Iterates over built Mail::Message objects.
45 |
# File 'lib/inquirex/actions/outbox.rb', line 45 def each(&) = @messages.each(&) |
#empty? ⇒ Boolean
51 |
# File 'lib/inquirex/actions/outbox.rb', line 51 def empty? = @messages.empty? |
#failures ⇒ Array<Result>
Returns executions that raised.
54 |
# File 'lib/inquirex/actions/outbox.rb', line 54 def failures = @results.select { |result| result.status == :failed } |
#record(action_id, status, error: nil) ⇒ Object
40 41 42 |
# File 'lib/inquirex/actions/outbox.rb', line 40 def record(action_id, status, error: nil) @results << Result.new(action_id:, status:, error:) end |
#size ⇒ Integer
Returns number of built messages.
48 |
# File 'lib/inquirex/actions/outbox.rb', line 48 def size = @messages.size |