Class: Flor::Journal
- Inherits:
-
Object
- Object
- Flor::Journal
- Defined in:
- lib/flor/unit/journal.rb
Overview
As seen in docs/hooks.md
“‘ruby flor.hooker.add(’journal’, Flor::Journal) “‘
A Journal hook, receives only “consumed” messages and keeps a copy of all of them.
Used in specs, do not uses as-is in production, since it simply grows in memory…
Instance Attribute Summary collapse
-
#messages ⇒ Object
readonly
Returns the value of attribute messages.
Instance Method Summary collapse
-
#initialize(unit) ⇒ Journal
constructor
A new instance of Journal.
-
#notify(executor, message) ⇒ Object
The method used by the hooker to give consumed messages to this journal.
-
#opts ⇒ Object
Tells the hooker that this hook is only interested in message that have been “consumed”, remember, the hooker passes messages to hooks before consumption and after consumption.
Constructor Details
#initialize(unit) ⇒ Journal
Returns a new instance of Journal.
23 24 25 26 27 28 29 30 31 32 33 34 35 36 |
# File 'lib/flor/unit/journal.rb', line 23 def initialize(unit) # Add a #journal method to the flor unit so that # `unit.journal` yields the message list. # unit.singleton_class.instance_eval do define_method(:journal) do @hooker['journal']. end end @messages = [] end |
Instance Attribute Details
#messages ⇒ Object (readonly)
Returns the value of attribute messages.
21 22 23 |
# File 'lib/flor/unit/journal.rb', line 21 def @messages end |
Instance Method Details
#notify(executor, message) ⇒ Object
The method used by the hooker to give consumed messages to this journal
51 52 53 54 55 56 57 |
# File 'lib/flor/unit/journal.rb', line 51 def notify(executor, ) @messages << Flor.dup() # stores a deep clone of each consumed message [] # no new messages end |
#opts ⇒ Object
Tells the hooker that this hook is only interested in message that have been “consumed”, remember, the hooker passes messages to hooks before consumption and after consumption. In this case only consumed messages are passed.
Other hooks may declare they are only interested in messages belonging to a certain domain or having a certain tag. See spec/unit/unit_hooks_spec.rb for more filtering examples.
47 |
# File 'lib/flor/unit/journal.rb', line 47 def opts; { consumed: true }; end |