cable_ready 4.0.3 → 4.0.4
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/Gemfile.lock +3 -3
- data/README.md +56 -27
- data/Rakefile +1 -1
- data/bin/standardize +1 -0
- data/lib/cable_ready/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: f7dceb4cb5c1a5f1768435818fe3c0605de13b81be36cb6fafea38a3124dc08b
|
4
|
+
data.tar.gz: 573b35e97838527b2f8342a5e09ac62a0a9c211a8c6f6d4cdac2929e08a77780
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 6683fbb458ee7733cfaa6cc0daa7b030b1d2ee1e3e8573e80f6c7839ee90c644957ee5bee9aebc42d261e544bf04eb0af3988c142c6a331e91d8adf05a761837
|
7
|
+
data.tar.gz: ce2624613f73527d02e8a978747ac3c1386db77a2a8dacdb84178940be617a2da00906add1b28844a61975716fdb4811749afb26d9f2e3ca76fa38e201d828e2
|
data/Gemfile.lock
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cable_ready (4.0.
|
4
|
+
cable_ready (4.0.4)
|
5
5
|
rails (>= 5.2)
|
6
6
|
|
7
7
|
GEM
|
@@ -85,7 +85,7 @@ GEM
|
|
85
85
|
mini_mime (1.0.2)
|
86
86
|
mini_portile2 (2.4.0)
|
87
87
|
minitest (5.11.3)
|
88
|
-
nio4r (2.
|
88
|
+
nio4r (2.5.1)
|
89
89
|
nokogiri (1.10.4)
|
90
90
|
mini_portile2 (~> 2.4.0)
|
91
91
|
parallel (1.17.0)
|
@@ -157,7 +157,7 @@ GEM
|
|
157
157
|
websocket-driver (0.7.1)
|
158
158
|
websocket-extensions (>= 0.1.0)
|
159
159
|
websocket-extensions (0.1.4)
|
160
|
-
zeitwerk (2.1.
|
160
|
+
zeitwerk (2.1.10)
|
161
161
|
|
162
162
|
PLATFORMS
|
163
163
|
ruby
|
data/README.md
CHANGED
@@ -1,4 +1,4 @@
|
|
1
|
-
[](http://blog.codinghorror.com/the-best-code-is-no-code-at-all/)
|
2
2
|
[](https://codeclimate.com/github/hopsoft/cable_ready/maintainability)
|
3
3
|
|
4
4
|
# CableReady
|
@@ -70,12 +70,27 @@ end
|
|
70
70
|
- [removeCssClass](#removecssclass)
|
71
71
|
- [setDatasetProperty](#setdatasetproperty)
|
72
72
|
|
73
|
-
> The `selector` options use [
|
73
|
+
> The `selector` options use [document.querySelector()](https://developer.mozilla.org/en-US/docs/Web/API/Document/querySelector) to find an element by default. [XPath](https://developer.mozilla.org/en-US/docs/Web/XPath) expressions can also be used if the `xpath` option is set to `true`. As with CSS selectors, the XPath expression must resolve to a single element and not a collection.
|
74
74
|
|
75
75
|
> It's possible to invoke multiple DOM operations with a single ActionCable broadcast.
|
76
76
|
|
77
77
|
> All DOM mutations have corresponding `before/after` events triggered on `document`.
|
78
|
-
> These events expose `detail
|
78
|
+
> These events expose `event.detail` set to the arguments from the server.
|
79
|
+
|
80
|
+
## Xpath Example
|
81
|
+
|
82
|
+
### app/models/user.rb
|
83
|
+
|
84
|
+
```ruby
|
85
|
+
class User < ApplicationRecord
|
86
|
+
include CableReady::Broadcaster
|
87
|
+
|
88
|
+
def broadcast_name_change
|
89
|
+
cable_ready["UserChannel"].text_content selector: "/html/body/div[1]/form/input[1]", text: name, xpath: true
|
90
|
+
cable_ready.broadcast
|
91
|
+
end
|
92
|
+
end
|
93
|
+
```
|
79
94
|
|
80
95
|
### DOM Events
|
81
96
|
|
@@ -87,7 +102,7 @@ Dispatches a DOM event in the browser.
|
|
87
102
|
cable_ready["MyChannel"].dispatch_event(
|
88
103
|
name: "string", # required - the name of the DOM event to dispatch (can be custom)
|
89
104
|
detail: "object", # [null] - assigned to event.detail
|
90
|
-
selector: "string" # [window] - string containing
|
105
|
+
selector: "string" # [window] - string containing a CSS selector or XPath expression
|
91
106
|
)
|
92
107
|
```
|
93
108
|
|
@@ -99,10 +114,10 @@ cable_ready["MyChannel"].dispatch_event(
|
|
99
114
|
|
100
115
|
```ruby
|
101
116
|
cable_ready["MyChannel"].morph(
|
102
|
-
selector: "string", # required - string containing
|
117
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
103
118
|
html: "string" # [null] - the HTML to assign
|
104
119
|
children_only: true|false # [null] - indicates if only child nodes should be morphed... skipping the parent element
|
105
|
-
focus_selector: "string", # [null] - string containing
|
120
|
+
focus_selector: "string", # [null] - string containing a CSS selector
|
106
121
|
)
|
107
122
|
```
|
108
123
|
|
@@ -139,8 +154,8 @@ Sets the innerHTML of a DOM element.
|
|
139
154
|
|
140
155
|
```ruby
|
141
156
|
cable_ready["MyChannel"].inner_html(
|
142
|
-
selector: "string", # required - string containing
|
143
|
-
focus_selector: "string", # [null] - string containing
|
157
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
158
|
+
focus_selector: "string", # [null] - string containing a CSS selector
|
144
159
|
html: "string" # [null] - the HTML to assign
|
145
160
|
)
|
146
161
|
```
|
@@ -156,8 +171,8 @@ Replaces a DOM element with new HTML.
|
|
156
171
|
|
157
172
|
```ruby
|
158
173
|
cable_ready["MyChannel"].outerHTML(
|
159
|
-
selector: "string", # required - string containing
|
160
|
-
focus_selector: "string", # [null] - string containing
|
174
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
175
|
+
focus_selector: "string", # [null] - string containing a CSS selector
|
161
176
|
html: "string" # [null] - the HTML to use as replacement
|
162
177
|
)
|
163
178
|
```
|
@@ -173,7 +188,7 @@ Sets the text content of a DOM element.
|
|
173
188
|
|
174
189
|
```ruby
|
175
190
|
cable_ready["MyChannel"].text_content(
|
176
|
-
selector: "string", # required - string containing
|
191
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
177
192
|
text: "string" # [null] - the text to assign
|
178
193
|
)
|
179
194
|
```
|
@@ -190,8 +205,8 @@ Supports behavior akin to prepend & append.
|
|
190
205
|
|
191
206
|
```ruby
|
192
207
|
cable_ready["MyChannel"].insert_adjacent_html(
|
193
|
-
selector: "string", # required - string containing
|
194
|
-
focus_selector: "string", # [null] - string containing
|
208
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
209
|
+
focus_selector: "string", # [null] - string containing a CSS selector
|
195
210
|
position: "string", # [beforeend] - the relative position to the DOM element (beforebegin, afterbegin, beforeend, afterend)
|
196
211
|
html: "string" # [null] - the HTML to insert
|
197
212
|
)
|
@@ -209,7 +224,7 @@ Supports behavior akin to prepend & append.
|
|
209
224
|
|
210
225
|
```ruby
|
211
226
|
cable_ready["MyChannel"].insert_adjacent_text(
|
212
|
-
selector: "string", # required - string containing
|
227
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
213
228
|
position: "string", # [beforeend] - the relative position to the DOM element (beforebegin, afterbegin, beforeend, afterend)
|
214
229
|
text: "string" # [null] - the text to insert
|
215
230
|
)
|
@@ -226,8 +241,8 @@ Removes an element from the DOM.
|
|
226
241
|
|
227
242
|
```ruby
|
228
243
|
cable_ready["MyChannel"].remove(
|
229
|
-
selector: "string", # required - string containing
|
230
|
-
focus_selector: "string" # [null] - string containing
|
244
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
245
|
+
focus_selector: "string" # [null] - string containing a CSS selector
|
231
246
|
)
|
232
247
|
```
|
233
248
|
|
@@ -242,7 +257,7 @@ Sets the value of an element.
|
|
242
257
|
|
243
258
|
```ruby
|
244
259
|
cable_ready["MyChannel"].set_value(
|
245
|
-
selector: "string", # required - string containing
|
260
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
246
261
|
value: "string" # [null] - the value to assign to the attribute
|
247
262
|
)
|
248
263
|
```
|
@@ -260,7 +275,7 @@ Sets an attribute on an element.
|
|
260
275
|
|
261
276
|
```ruby
|
262
277
|
cable_ready["MyChannel"].set_attribute(
|
263
|
-
selector: "string", # required - string containing
|
278
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
264
279
|
name: "string", # required - the attribute to set
|
265
280
|
value: "string" # [null] - the value to assign to the attribute
|
266
281
|
)
|
@@ -277,7 +292,7 @@ Removes an attribute from an element.
|
|
277
292
|
|
278
293
|
```ruby
|
279
294
|
cable_ready["MyChannel"].remove_attribute(
|
280
|
-
selector: "string", # required - string containing
|
295
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
281
296
|
name: "string" # required - the attribute to remove
|
282
297
|
)
|
283
298
|
```
|
@@ -296,7 +311,7 @@ This is a `noop` if the css class is already assigned.
|
|
296
311
|
|
297
312
|
```ruby
|
298
313
|
cable_ready["MyChannel"].add_css_class(
|
299
|
-
selector: "string", # required - string containing
|
314
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
300
315
|
name: "string" # [null] - the CSS class to add
|
301
316
|
)
|
302
317
|
|
@@ -313,7 +328,7 @@ Removes a css class from an element.
|
|
313
328
|
|
314
329
|
```ruby
|
315
330
|
cable_ready["MyChannel"].add_css_class(
|
316
|
-
selector: "string", # required - string containing
|
331
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
317
332
|
name: "string" # [null] - the CSS class to remove
|
318
333
|
)
|
319
334
|
```
|
@@ -331,7 +346,7 @@ Sets an dataset property (data-* attribute) on an element.
|
|
331
346
|
|
332
347
|
```ruby
|
333
348
|
cable_ready["MyChannel"].set_dataset_property(
|
334
|
-
selector: "string", # required - string containing
|
349
|
+
selector: "string", # required - string containing a CSS selector or XPath expression
|
335
350
|
name: "string", # required - the property to set
|
336
351
|
value: "string" # [null] - the value to assign to the dataset
|
337
352
|
)
|
@@ -344,8 +359,22 @@ cable_ready["MyChannel"].set_dataset_property(
|
|
344
359
|
|
345
360
|
## JavaScript Development
|
346
361
|
|
347
|
-
|
348
|
-
|
349
|
-
|
350
|
-
|
351
|
-
|
362
|
+
Please run `bin/standardize` on your codebase before submitting commits.
|
363
|
+
|
364
|
+
## Contributing
|
365
|
+
|
366
|
+
This project uses [Standard](https://github.com/testdouble/standard)
|
367
|
+
and [Prettier](https://github.com/prettier/prettier) to minimize bike shedding related to code formatting.
|
368
|
+
Please run `./bin/standardize` prior submitting pull requests.
|
369
|
+
|
370
|
+
### Releasing
|
371
|
+
|
372
|
+
1. Bump version number at `lib/cable_ready/version.rb`
|
373
|
+
1. Run `rake build`
|
374
|
+
1. Run `rake release`
|
375
|
+
1. Change directories `cd ./javascript`
|
376
|
+
1. Run `yarn publish` - NOTE: this will throw a fatal error because the tag already exists but the package will still publish
|
377
|
+
|
378
|
+
## License
|
379
|
+
|
380
|
+
CableReady is released under the [MIT License](LICENSE.txt).
|
data/Rakefile
CHANGED
data/bin/standardize
CHANGED
data/lib/cable_ready/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: cable_ready
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 4.0.
|
4
|
+
version: 4.0.4
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Hopkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2019-
|
11
|
+
date: 2019-09-19 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|