Sha256: 7bed655e8497292b4cd5f42795c28be4f616490070efcbee52ff487372727b93
Contents?: true
Size: 937 Bytes
Versions: 6
Compression:
Stored size: 937 Bytes
Contents
# frozen_string_literal: true module StimulusReflex class PageBroadcaster < Broadcaster 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 def to_sym :page end def page? true end def to_s "Page" end end end
Version data entries
6 entries across 6 versions & 1 rubygems