Sha256: 1f24087af934f8b51dc3f00468c0f84d341026f5da569d76563143e3e457ea17

Contents?: true

Size: 551 Bytes

Versions: 3

Compression:

Stored size: 551 Bytes

Contents

class Cubism::StreamPresenceJob < ApplicationJob
  include CableReady::Broadcaster
  include CableReady::StreamIdentifier
  queue_as :default

  def perform(resource:)
    cable_ready[Cubism::PresenceChannel].dispatch_event(
      name: "cubism:update",
      selector: "cubicle-element[identifier='#{signed_stream_identifier(resource.to_global_id.to_s)}']",
      detail: {
        users: Cubism.user_class.find(resource.present_users.members).map { |user| user.slice(user.cubicle_attributes) }.as_json
      }
    ).broadcast_to(resource)
  end
end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
cubism-0.1.0.pre3 app/jobs/cubism/stream_presence_job.rb
cubism-0.1.0.pre2 app/jobs/cubism/stream_presence_job.rb
cubism-0.1.0.pre1 app/jobs/cubism/stream_presence_job.rb