Sha256: b310772231496075a4c4a6522c56d12448861bfc5d30fd3655175d466d4f7545

Contents?: true

Size: 623 Bytes

Versions: 9

Compression:

Stored size: 623 Bytes

Contents

# frozen_string_literal: true

module Tamashii
  module Manager
    # :nodoc:
    class Subscription < Tamashii::Server::Subscription::Redis
      def send_to(id, packet)
        packet = packet.dump if packet.is_a?(Tamashii::Packet)
        broadcast([id.bytesize, id.unpack('C*'), packet].flatten)
      end

      protected

      def process_message(message)
        operate = unpack(message)
        head_size = operate.take(1).first
        return if head_size.zero?
        target = operate.take(head_size + 1).drop(1)
        Client[target.pack('C*')]&.send(operate.drop(head_size + 1))
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 1 rubygems

Version Path
tamashii-manager-0.3.0 lib/tamashii/manager/subscription.rb
tamashii-manager-0.2.7 lib/tamashii/manager/subscription.rb
tamashii-manager-0.2.6 lib/tamashii/manager/subscription.rb
tamashii-manager-0.2.5 lib/tamashii/manager/subscription.rb
tamashii-manager-0.2.4 lib/tamashii/manager/subscription.rb
tamashii-manager-0.2.3 lib/tamashii/manager/subscription.rb
tamashii-manager-0.2.2 lib/tamashii/manager/subscription.rb
tamashii-manager-0.2.1 lib/tamashii/manager/subscription.rb
tamashii-manager-0.2.0 lib/tamashii/manager/subscription.rb