Sha256: f2848873ee9da3579ec2bb6d55e50bfe872e7f6c22ba2fb82bc72860f7c956c0
Contents?: true
Size: 888 Bytes
Versions: 8
Compression:
Stored size: 888 Bytes
Contents
# frozen_string_literal: true class MessageBus::Message < Struct.new(:global_id, :message_id, :channel , :data) attr_accessor :site_id, :user_ids, :group_ids, :client_ids 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 # only tricky thing to encode is pipes in a channel name ... do a straight replace def encode global_id.to_s << "|" << message_id.to_s << "|" << channel.gsub("|", "$$123$$") << "|" << data end def encode_without_ids channel.gsub("|", "$$123$$") << "|" << data end end
Version data entries
8 entries across 8 versions & 1 rubygems