Class: CableReady::Channel
- Inherits:
-
Object
- Object
- CableReady::Channel
- Defined in:
- lib/cable_ready/channel.rb
Instance Attribute Summary collapse
-
#name ⇒ Object
readonly
Returns the value of attribute name.
-
#operations ⇒ Object
readonly
Returns the value of attribute operations.
Instance Method Summary collapse
- #add_css_class(options = {}) ⇒ Object
- #broadcast ⇒ Object
- #clear ⇒ Object
- #dispatch_event(options = {}) ⇒ Object
-
#initialize(name) ⇒ Channel
constructor
Example Operations Payload:.
- #inner_html(options = {}) ⇒ Object
- #insert_adjacent_html(options = {}) ⇒ Object
- #insert_adjacent_text(options = {}) ⇒ Object
- #morph(options = {}) ⇒ Object
- #remove(options = {}) ⇒ Object
- #remove_attribute(options = {}) ⇒ Object
- #remove_css_class(options = {}) ⇒ Object
- #replace(options = {}) ⇒ Object
- #set_attribute(options = {}) ⇒ Object
- #set_dataset_property(options = {}) ⇒ Object
- #set_value(options = {}) ⇒ Object
- #text_content(options = {}) ⇒ Object
Constructor Details
#initialize(name) ⇒ Channel
Example Operations Payload:
{
# DOM Events ..................................................................................................
dispatch_event: [{
name: "string",
detail: "object",
selector: "string",
}, ...],
# Element Mutations ...........................................................................................
inner_html: [{
selector: "string",
focusSelector: "string",
html: "string"
}, ...],
text_content: [{
selector: "string",
text: "string"
}, ...]
insert_adjacent_html: [{
selector: "string",
focusSelector: "string",
position: "string",
html: "string"
}, ...],
insert_adjacent_text: [{
selector: "string",
position: "string",
text: "string"
}, ...],
remove: [{
selector: "string",
focusSelector: "string,
}, ...],
replace: [{
selector: "string",
focusSelector: "string",
html: "string"
}, ...],
set_value: [{
selector: "string",
value: "string"
}, ...],
# Attribute Mutations .........................................................................................
set_attribute: [{
selector: "string",
name: "string",
value: "string"
}, ...],
remove_attribute: [{
selector: "string",
name: "string"
}, ...],
# CSS Class Mutations .........................................................................................
add_css_class: [{
selector: "string",
name: "string"
}, ...],
remove_css_class: [{
selector: "string",
name: "string"
}, ...],
# Dataset Mutations ...........................................................................................
set_dataset_property: [{
selector: "string",
name: "string",
value: "string"
}, ...],
}
91 92 93 94 |
# File 'lib/cable_ready/channel.rb', line 91 def initialize(name) @name = name @operations = stub end |
Instance Attribute Details
#name ⇒ Object (readonly)
Returns the value of attribute name.
3 4 5 |
# File 'lib/cable_ready/channel.rb', line 3 def name @name end |
#operations ⇒ Object (readonly)
Returns the value of attribute operations.
3 4 5 |
# File 'lib/cable_ready/channel.rb', line 3 def operations @operations end |
Instance Method Details
#add_css_class(options = {}) ⇒ Object
151 152 153 |
# File 'lib/cable_ready/channel.rb', line 151 def add_css_class(={}) operations[:add_css_class] << end |
#broadcast ⇒ Object
100 101 102 103 104 105 |
# File 'lib/cable_ready/channel.rb', line 100 def broadcast operations.select! { |_, list| list.present? } operations.deep_transform_keys! { |key| key.to_s.camelize(:lower) } ActionCable.server.broadcast name, "cableReady" => true, "operations" => operations clear end |
#clear ⇒ Object
96 97 98 |
# File 'lib/cable_ready/channel.rb', line 96 def clear @operations = stub end |
#dispatch_event(options = {}) ⇒ Object
107 108 109 |
# File 'lib/cable_ready/channel.rb', line 107 def dispatch_event(={}) operations[:dispatch_event] << end |
#inner_html(options = {}) ⇒ Object
115 116 117 |
# File 'lib/cable_ready/channel.rb', line 115 def inner_html(={}) operations[:inner_html] << end |
#insert_adjacent_html(options = {}) ⇒ Object
123 124 125 |
# File 'lib/cable_ready/channel.rb', line 123 def insert_adjacent_html(={}) operations[:insert_adjacent_html] << end |
#insert_adjacent_text(options = {}) ⇒ Object
127 128 129 |
# File 'lib/cable_ready/channel.rb', line 127 def insert_adjacent_text(={}) operations[:insert_adjacent_text] << end |
#morph(options = {}) ⇒ Object
111 112 113 |
# File 'lib/cable_ready/channel.rb', line 111 def morph(={}) operations[:morph] << end |
#remove(options = {}) ⇒ Object
131 132 133 |
# File 'lib/cable_ready/channel.rb', line 131 def remove(={}) operations[:remove] << end |
#remove_attribute(options = {}) ⇒ Object
147 148 149 |
# File 'lib/cable_ready/channel.rb', line 147 def remove_attribute(={}) operations[:remove_attribute] << end |
#remove_css_class(options = {}) ⇒ Object
155 156 157 |
# File 'lib/cable_ready/channel.rb', line 155 def remove_css_class(={}) operations[:remove_css_class] << end |
#replace(options = {}) ⇒ Object
135 136 137 |
# File 'lib/cable_ready/channel.rb', line 135 def replace(={}) operations[:replace] << end |
#set_attribute(options = {}) ⇒ Object
143 144 145 |
# File 'lib/cable_ready/channel.rb', line 143 def set_attribute(={}) operations[:set_attribute] << end |
#set_dataset_property(options = {}) ⇒ Object
159 160 161 |
# File 'lib/cable_ready/channel.rb', line 159 def set_dataset_property(={}) operations[:set_dataset_property] << end |
#set_value(options = {}) ⇒ Object
139 140 141 |
# File 'lib/cable_ready/channel.rb', line 139 def set_value(={}) operations[:set_value] << end |
#text_content(options = {}) ⇒ Object
119 120 121 |
# File 'lib/cable_ready/channel.rb', line 119 def text_content(={}) operations[:text_content] << end |