Class: EmPipelines::Message
- Inherits:
-
Object
- Object
- EmPipelines::Message
- Defined in:
- lib/empipelines/message.rb
Constant Summary collapse
- @@count =
0
Instance Attribute Summary collapse
-
#co_id ⇒ Object
readonly
Returns the value of attribute co_id.
-
#state ⇒ Object
readonly
Returns the value of attribute state.
Instance Method Summary collapse
- #[](key) ⇒ Object
- #[]=(key, value) ⇒ Object
- #as_hash ⇒ Object
- #broken! ⇒ Object
- #consumed! ⇒ Object
- #copy ⇒ Object
- #delete(key) ⇒ Object
-
#initialize(base_hash = {}, origin = nil) ⇒ Message
constructor
A new instance of Message.
- #merge!(other_hash) ⇒ Object
- #on_broken(callback = nil, &callback_block) ⇒ Object
- #on_consumed(callback = nil, &callback_block) ⇒ Object
- #on_rejected(callback = nil, &callback_block) ⇒ Object
- #payload ⇒ Object
- #processed? ⇒ Boolean
- #rejected! ⇒ Object
- #to_s ⇒ Object
Constructor Details
#initialize(base_hash = {}, origin = nil) ⇒ Message
7 8 9 10 11 12 |
# File 'lib/empipelines/message.rb', line 7 def initialize(base_hash={}, origin=nil) @origin = origin create_correlation_id! backing_hash!(base_hash) created! end |
Instance Attribute Details
#co_id ⇒ Object (readonly)
Returns the value of attribute co_id.
3 4 5 |
# File 'lib/empipelines/message.rb', line 3 def co_id @co_id end |
#state ⇒ Object (readonly)
Returns the value of attribute state.
3 4 5 |
# File 'lib/empipelines/message.rb', line 3 def state @state end |
Instance Method Details
#[](key) ⇒ Object
14 15 16 |
# File 'lib/empipelines/message.rb', line 14 def [](key) as_hash[key] end |
#[]=(key, value) ⇒ Object
18 19 20 21 |
# File 'lib/empipelines/message.rb', line 18 def []=(key, value) check_if_mutation_allowed as_hash[key] = value end |
#as_hash ⇒ Object
68 69 70 |
# File 'lib/empipelines/message.rb', line 68 def as_hash @backing_hash end |
#broken! ⇒ Object
58 59 60 61 62 |
# File 'lib/empipelines/message.rb', line 58 def broken! check_if_mutation_allowed @state = :broken invoke(@broken_callback) end |
#consumed! ⇒ Object
46 47 48 49 50 |
# File 'lib/empipelines/message.rb', line 46 def consumed! check_if_mutation_allowed @state = :consumed invoke(@consumed_callback) end |
#copy ⇒ Object
76 77 78 79 80 81 82 |
# File 'lib/empipelines/message.rb', line 76 def copy forked = Message.new(as_hash, self) forked.on_broken(@broken_callback) forked.on_rejected(@rejected_callback) forked.on_consumed(@consumed_callback) forked end |
#delete(key) ⇒ Object
23 24 25 26 |
# File 'lib/empipelines/message.rb', line 23 def delete(key) check_if_mutation_allowed as_hash.delete key end |
#merge!(other_hash) ⇒ Object
28 29 30 31 32 |
# File 'lib/empipelines/message.rb', line 28 def merge!(other_hash) check_if_mutation_allowed backing_hash!(as_hash.merge(other_hash)) self end |
#on_broken(callback = nil, &callback_block) ⇒ Object
42 43 44 |
# File 'lib/empipelines/message.rb', line 42 def on_broken(callback=nil, &callback_block) @broken_callback = (callback || callback_block) end |
#on_consumed(callback = nil, &callback_block) ⇒ Object
34 35 36 |
# File 'lib/empipelines/message.rb', line 34 def on_consumed(callback=nil, &callback_block) @consumed_callback = (callback || callback_block) end |
#on_rejected(callback = nil, &callback_block) ⇒ Object
38 39 40 |
# File 'lib/empipelines/message.rb', line 38 def on_rejected(callback=nil, &callback_block) @rejected_callback = (callback || callback_block) end |
#payload ⇒ Object
72 73 74 |
# File 'lib/empipelines/message.rb', line 72 def payload as_hash[:payload] end |
#processed? ⇒ Boolean
64 65 66 |
# File 'lib/empipelines/message.rb', line 64 def processed? @state != :created end |
#rejected! ⇒ Object
52 53 54 55 56 |
# File 'lib/empipelines/message.rb', line 52 def rejected! check_if_mutation_allowed @state = :rejected invoke(@rejected_callback) end |
#to_s ⇒ Object
84 85 86 |
# File 'lib/empipelines/message.rb', line 84 def to_s "#{self.class.name} co_id:#{co_id} state:#{@state} backing_hash:#{as_hash}" end |