cable_ready 2.0.2 → 2.0.3
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 +4 -2
- data/README.md +18 -14
- data/lib/cable_ready/channel.rb +45 -8
- data/lib/cable_ready/version.rb +1 -1
- metadata +16 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 46d93ee8a3d6c9c96279beb3e2a9a7c37aab209a
|
4
|
+
data.tar.gz: b1d4cf53a5f5eaeca125028270691a1aafebc760
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 61faf1a5d2ca86c75372ddad5a8b0182bc4a1c85cff77fd03ccf13ac1d24cbd97b6d75b07ee4103c1a8bb00ceebb7287519bffca30ac9a07ea5f2a1ee1e6b3e7
|
7
|
+
data.tar.gz: a0709a74d6e85976c90c21511245a668efe857d375cd973353b24c5820f607dc17d49f6035b05e8038cec2b9a7db6f24b235e9abe08246b1985f78a89ffc858b
|
data/Gemfile.lock
CHANGED
@@ -1,8 +1,9 @@
|
|
1
1
|
PATH
|
2
2
|
remote: .
|
3
3
|
specs:
|
4
|
-
cable_ready (2.0.
|
4
|
+
cable_ready (2.0.3)
|
5
5
|
activesupport (>= 5.0.0)
|
6
|
+
htmlcompressor (~> 0.3.1)
|
6
7
|
|
7
8
|
GEM
|
8
9
|
remote: https://rubygems.org/
|
@@ -25,7 +26,8 @@ GEM
|
|
25
26
|
tins (~> 1.6)
|
26
27
|
debug_inspector (0.0.3)
|
27
28
|
docile (1.1.5)
|
28
|
-
|
29
|
+
htmlcompressor (0.3.1)
|
30
|
+
i18n (0.9.1)
|
29
31
|
concurrent-ruby (~> 1.0)
|
30
32
|
interception (0.5)
|
31
33
|
json (2.1.0)
|
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)
|
3
3
|
[](https://gemnasium.com/hopsoft/cable_ready)
|
4
4
|
|
@@ -13,18 +13,6 @@ from the server via [ActionCable](http://guides.rubyonrails.org/action_cable_ove
|
|
13
13
|
|
14
14
|
> Please read the official [ActionCable docs](http://guides.rubyonrails.org/action_cable_overview.html) to learn more about ActionCable before proceeding.
|
15
15
|
|
16
|
-
```ruby
|
17
|
-
# app/models/user.rb
|
18
|
-
class User < ApplicationRecord
|
19
|
-
include CableReady::Broadcaster
|
20
|
-
|
21
|
-
def broadcast_name_change
|
22
|
-
cable_ready["UserChannel"].text_content selector: "#user-name", text: name
|
23
|
-
cable_ready.broadcast
|
24
|
-
end
|
25
|
-
end
|
26
|
-
```
|
27
|
-
|
28
16
|
```javascript
|
29
17
|
// app/assets/javascripts/application.js
|
30
18
|
/*
|
@@ -43,9 +31,25 @@ App.cable.subscriptions.create({ channel: "UserChannel" }, {
|
|
43
31
|
});
|
44
32
|
```
|
45
33
|
|
34
|
+
```ruby
|
35
|
+
# app/models/user.rb
|
36
|
+
class User < ApplicationRecord
|
37
|
+
include CableReady::Broadcaster
|
38
|
+
|
39
|
+
def broadcast_name_change
|
40
|
+
cable_ready["UserChannel"].text_content selector: "#user-name", text: name
|
41
|
+
cable_ready.broadcast
|
42
|
+
end
|
43
|
+
end
|
44
|
+
```
|
45
|
+
|
46
|
+
See [CableReady TodoMVC](https://github.com/hopsoft/cable_ready_todomvc)
|
47
|
+
for a more complete reference implementation.
|
48
|
+
|
46
49
|
## Supported DOM Operations
|
47
50
|
|
48
51
|
- [dispatchEvent](#dispatchevent)
|
52
|
+
- [morph](#morph)
|
49
53
|
- [innerHTML](#innerhtml)
|
50
54
|
- [insertAdjacentHTML](#insertAdjacentHTML)
|
51
55
|
- [insertAdjacentText](#insertadjacenttext)
|
@@ -80,7 +84,7 @@ cable_ready["MyChannel"].dispatch_event(
|
|
80
84
|
|
81
85
|
#### [morph](https://github.com/patrick-steele-idem/morphdom)
|
82
86
|
|
83
|
-
Fast lightweight DOM diffing/patching without a virtual DOM.
|
87
|
+
[Fast lightweight DOM diffing/patching](https://github.com/patrick-steele-idem/morphdom) without a virtual DOM.
|
84
88
|
|
85
89
|
```ruby
|
86
90
|
cable_ready["MyChannel"].morph(
|
data/lib/cable_ready/channel.rb
CHANGED
@@ -1,6 +1,9 @@
|
|
1
|
+
require "htmlcompressor"
|
2
|
+
|
1
3
|
module CableReady
|
2
4
|
class Channel
|
3
5
|
attr_reader :name, :operations
|
6
|
+
attr_accessor :compress_html
|
4
7
|
|
5
8
|
# Example Operations Payload:
|
6
9
|
#
|
@@ -15,10 +18,16 @@ module CableReady
|
|
15
18
|
#
|
16
19
|
# # Element Mutations ...........................................................................................
|
17
20
|
#
|
21
|
+
# morph: [{
|
22
|
+
# selector: "string",
|
23
|
+
# focusSelector: "string",
|
24
|
+
# html: "string"
|
25
|
+
# }, ...],
|
26
|
+
#
|
18
27
|
# inner_html: [{
|
19
|
-
# selector:
|
28
|
+
# selector: "string",
|
20
29
|
# focusSelector: "string",
|
21
|
-
# html:
|
30
|
+
# html: "string"
|
22
31
|
# }, ...],
|
23
32
|
#
|
24
33
|
# text_content: [{
|
@@ -27,10 +36,10 @@ module CableReady
|
|
27
36
|
# }, ...]
|
28
37
|
#
|
29
38
|
# insert_adjacent_html: [{
|
30
|
-
# selector:
|
39
|
+
# selector: "string",
|
31
40
|
# focusSelector: "string",
|
32
|
-
# position:
|
33
|
-
# html:
|
41
|
+
# position: "string",
|
42
|
+
# html: "string"
|
34
43
|
# }, ...],
|
35
44
|
#
|
36
45
|
# insert_adjacent_text: [{
|
@@ -40,14 +49,14 @@ module CableReady
|
|
40
49
|
# }, ...],
|
41
50
|
#
|
42
51
|
# remove: [{
|
43
|
-
# selector:
|
52
|
+
# selector: "string",
|
44
53
|
# focusSelector: "string,
|
45
54
|
# }, ...],
|
46
55
|
#
|
47
56
|
# replace: [{
|
48
|
-
# selector:
|
57
|
+
# selector: "string",
|
49
58
|
# focusSelector: "string",
|
50
|
-
# html:
|
59
|
+
# html: "string"
|
51
60
|
# }, ...],
|
52
61
|
#
|
53
62
|
# set_value: [{
|
@@ -91,6 +100,7 @@ module CableReady
|
|
91
100
|
def initialize(name)
|
92
101
|
@name = name
|
93
102
|
@operations = stub
|
103
|
+
@compress_html = true
|
94
104
|
end
|
95
105
|
|
96
106
|
def clear
|
@@ -109,10 +119,12 @@ module CableReady
|
|
109
119
|
end
|
110
120
|
|
111
121
|
def morph(options={})
|
122
|
+
options[:html] = html_compressor.compress(options[:html].to_s) if compress_html
|
112
123
|
operations[:morph] << options
|
113
124
|
end
|
114
125
|
|
115
126
|
def inner_html(options={})
|
127
|
+
options[:html] = html_compressor.compress(options[:html].to_s) if compress_html
|
116
128
|
operations[:inner_html] << options
|
117
129
|
end
|
118
130
|
|
@@ -121,6 +133,7 @@ module CableReady
|
|
121
133
|
end
|
122
134
|
|
123
135
|
def insert_adjacent_html(options={})
|
136
|
+
options[:html] = html_compressor.compress(options[:html].to_s) if compress_html
|
124
137
|
operations[:insert_adjacent_html] << options
|
125
138
|
end
|
126
139
|
|
@@ -133,6 +146,7 @@ module CableReady
|
|
133
146
|
end
|
134
147
|
|
135
148
|
def replace(options={})
|
149
|
+
options[:html] = html_compressor.compress(options[:html].to_s) if compress_html
|
136
150
|
operations[:replace] << options
|
137
151
|
end
|
138
152
|
|
@@ -180,5 +194,28 @@ module CableReady
|
|
180
194
|
set_dataset_property: []
|
181
195
|
}
|
182
196
|
end
|
197
|
+
|
198
|
+
def html_compressor
|
199
|
+
@html_compressor ||= HtmlCompressor::Compressor.new(
|
200
|
+
enabled: true,
|
201
|
+
remove_multi_spaces: true,
|
202
|
+
remove_comments: true,
|
203
|
+
remove_intertag_spaces: false,
|
204
|
+
remove_quotes: true,
|
205
|
+
compress_css: false,
|
206
|
+
compress_javascript: false,
|
207
|
+
simple_doctype: false,
|
208
|
+
remove_script_attributes: true,
|
209
|
+
remove_style_attributes: true,
|
210
|
+
remove_link_attributes: true,
|
211
|
+
remove_form_attributes: false,
|
212
|
+
remove_input_attributes: true,
|
213
|
+
remove_javascript_protocol: true,
|
214
|
+
remove_http_protocol: false,
|
215
|
+
remove_https_protocol: false,
|
216
|
+
preserve_line_breaks: false,
|
217
|
+
simple_boolean_attributes: true
|
218
|
+
)
|
219
|
+
end
|
183
220
|
end
|
184
221
|
end
|
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: 2.0.
|
4
|
+
version: 2.0.3
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Nathan Hopkins
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2017-11-
|
11
|
+
date: 2017-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|
@@ -24,6 +24,20 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 5.0.0
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: htmlcompressor
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - "~>"
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: 0.3.1
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - "~>"
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: 0.3.1
|
27
41
|
- !ruby/object:Gem::Dependency
|
28
42
|
name: rake
|
29
43
|
requirement: !ruby/object:Gem::Requirement
|