Class: Futurism::Channel

Inherits:
Object
  • Object
show all
Includes:
CableReady::Broadcaster
Defined in:
app/channels/futurism/channel.rb

Instance Method Summary collapse

Instance Method Details

#receive(data) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# File 'app/channels/futurism/channel.rb', line 17

def receive(data)
  resources = data.fetch_values("signed_params", "sgids", "signed_controllers", "urls", "broadcast_each") { |_key| Array.new(data["signed_params"].length, nil) }.transpose

  resolver = Resolver::Resources.new(resource_definitions: resources, connection: connection, params: @params)
  resolver.resolve do |selector, html, broadcast_each|
    cable_ready[stream_name].outer_html(
      selector: selector,
      html: html
    )

    cable_ready.broadcast if broadcast_each
  end

  cable_ready.broadcast
end

#stream_nameObject



5
6
7
8
9
10
11
# File 'app/channels/futurism/channel.rb', line 5

def stream_name
  ids = connection.identifiers.map { |identifier| send(identifier).try(:id) || send(identifier) }
  [
    params[:channel],
    ids.select(&:present?).join(";")
  ].select(&:present?).join(":")
end

#subscribedObject



13
14
15
# File 'app/channels/futurism/channel.rb', line 13

def subscribed
  stream_from stream_name
end