class StimulusReflex::Broadcaster

Attributes

logger[R]
operations[R]
reflex[R]

Public Class Methods

new(reflex) click to toggle source
# File lib/stimulus_reflex/broadcasters/broadcaster.rb, line 8
def initialize(reflex)
  @reflex = reflex
  @logger = Rails.logger if defined?(Rails.logger)
  @operations = []
end

Public Instance Methods

broadcast(*args) click to toggle source

abstract method to be implemented by subclasses

# File lib/stimulus_reflex/broadcasters/broadcaster.rb, line 43
def broadcast(*args)
  raise NotImplementedError
end
broadcast_message(subject:, body: nil, data: {}, error: nil) click to toggle source
# File lib/stimulus_reflex/broadcasters/broadcaster.rb, line 26
def broadcast_message(subject:, body: nil, data: {}, error: nil)
  logger.error "\e[31m#{body}\e[0m" if subject == "error"
  operations << ["document", :dispatch_event]
  cable_ready.dispatch_event(
    name: "stimulus-reflex:server-message",
    detail: {
      reflexId: data["reflexId"],
      stimulus_reflex: data.merge(
        morph: to_sym,
        server_message: {subject: subject, body: error&.to_s}
      )
    }
  )
  cable_ready.broadcast
end
nothing?() click to toggle source
# File lib/stimulus_reflex/broadcasters/broadcaster.rb, line 14
def nothing?
  false
end
page?() click to toggle source
# File lib/stimulus_reflex/broadcasters/broadcaster.rb, line 18
def page?
  false
end
selector?() click to toggle source
# File lib/stimulus_reflex/broadcasters/broadcaster.rb, line 22
def selector?
  false
end
to_s() click to toggle source

abstract method to be implemented by subclasses

# File lib/stimulus_reflex/broadcasters/broadcaster.rb, line 53
def to_s
  raise NotImplementedError
end
to_sym() click to toggle source

abstract method to be implemented by subclasses

# File lib/stimulus_reflex/broadcasters/broadcaster.rb, line 48
def to_sym
  raise NotImplementedError
end