Class: EmPipelines::Message

Inherits:
Object
  • Object
show all
Defined in:
lib/empipelines/message.rb

Constant Summary collapse

@@count =
0

Instance Attribute Summary collapse

Instance Method Summary collapse

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_idObject (readonly)

Returns the value of attribute co_id.



3
4
5
# File 'lib/empipelines/message.rb', line 3

def co_id
  @co_id
end

#stateObject (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_hashObject



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

#copyObject



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

#payloadObject



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_sObject



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