class StimulusReflex::PageBroadcaster

Public Instance Methods

broadcast(selectors, data) click to toggle source
# File lib/stimulus_reflex/broadcasters/page_broadcaster.rb, line 5
def broadcast(selectors, data)
  reflex.controller.process reflex.params[:action]
  page_html = reflex.controller.response.body

  return unless page_html.present?

  document = Nokogiri::HTML.parse(page_html)
  selectors = selectors.select { |s| document.css(s).present? }
  selectors.each do |selector|
    operations << [selector, :morph]
    html = document.css(selector).inner_html
    cable_ready.morph(
      selector: selector,
      html: html,
      children_only: true,
      permanent_attribute_name: permanent_attribute_name,
      stimulus_reflex: data.merge({
        morph: to_sym
      })
    )
  end

  cable_ready.broadcast
end
page?() click to toggle source
# File lib/stimulus_reflex/broadcasters/page_broadcaster.rb, line 34
def page?
  true
end
to_s() click to toggle source
# File lib/stimulus_reflex/broadcasters/page_broadcaster.rb, line 38
def to_s
  "Page"
end
to_sym() click to toggle source
# File lib/stimulus_reflex/broadcasters/page_broadcaster.rb, line 30
def to_sym
  :page
end