Method: MessageBus::Message.decode

Defined in:
lib/message_bus/message.rb

.decode(encoded) ⇒ Object



7
8
9
10
11
12
13
14
15
16
17
18
19
# File 'lib/message_bus/message.rb', line 7

def self.decode(encoded)
  s1 = encoded.index("|")
  s2 = encoded.index("|", s1 + 1)
  s3 = encoded.index("|", s2 + 1)

  global_id  = encoded[0, s1 + 1].to_i
  message_id = encoded[(s1 + 1), (s2 - s1 - 1)].to_i
  channel    = encoded[(s2 + 1), (s3 - s2 - 1)]
  channel.gsub!("$$123$$", "|")
  data = encoded[(s3 + 1), encoded.size]

  MessageBus::Message.new(global_id, message_id, channel, data)
end