class StimulusReflex::SelectorBroadcaster
Public Instance Methods
append_morph(selectors, html)
click to toggle source
# File lib/stimulus_reflex/broadcasters/selector_broadcaster.rb, line 45 def append_morph(selectors, html) morphs << [selectors, html] end
broadcast(_, data = {})
click to toggle source
# File lib/stimulus_reflex/broadcasters/selector_broadcaster.rb, line 5 def broadcast(_, data = {}) morphs.each do |morph| selectors, html = morph updates = selectors.is_a?(Hash) ? selectors : Hash[selectors, html] updates.each do |selector, html| html = html.to_s fragment = Nokogiri::HTML.fragment(html) match = fragment.at_css(selector) if match.present? operations << [selector, :morph] cable_ready.morph( selector: selector, html: match.inner_html, children_only: true, permanent_attribute_name: permanent_attribute_name, stimulus_reflex: data.merge({ morph: to_sym }) ) else operations << [selector, :inner_html] cable_ready.inner_html( selector: selector, html: fragment.to_html, stimulus_reflex: data.merge({ morph: to_sym }) ) end end end cable_ready.broadcast morphs.clear end
morphs()
click to toggle source
# File lib/stimulus_reflex/broadcasters/selector_broadcaster.rb, line 41 def morphs @morphs ||= [] end
selector?()
click to toggle source
# File lib/stimulus_reflex/broadcasters/selector_broadcaster.rb, line 53 def selector? true end
to_s()
click to toggle source
# File lib/stimulus_reflex/broadcasters/selector_broadcaster.rb, line 57 def to_s "Selector" end
to_sym()
click to toggle source
# File lib/stimulus_reflex/broadcasters/selector_broadcaster.rb, line 49 def to_sym :selector end