cable_ready 5.0.0.pre2 → 5.0.0.pre3

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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 8bb4eaf8d394d6148e9726fb043dcdd34e3ce9e893b8bfba84a5222481a1c951
4
- data.tar.gz: f57b4d052d2fa2f3236f4d64528a8fd546c3983e567a813730f2480358805be1
3
+ metadata.gz: 373a72dbd75eb888edac2ccf0d86cfd3cf2733efa69691ce6860886efdac64f9
4
+ data.tar.gz: 247ea517c6fe32417a06daaefd726ed10a4f2303ca1bdd6cb7e8bd175cbcb2ca
5
5
  SHA512:
6
- metadata.gz: 180c342be129e4c747823f9697363e3d8ffe50a58da146a2c1ea85f216018a59e333c44dfb89037e2fa7d6ba5f1f95feee4c4c756da97460ebb7e060b9a8566e
7
- data.tar.gz: 9e0f2341bef2045587c54c2a3edfd38224471c2be3582e4e4fb1e1dfa5587e0a29e8148c650f1e39e26bbe96eede3242921e4dcffbd20a8fc924d184cc04b31d
6
+ metadata.gz: a03bab6e32acfe5660bebcb08a4b5f782a92b1cf297fdf74627b804f435f55873991202fcf8c715a5644598f5d00af8fa9b4069fb6dcb254c4d4524d3d68820c
7
+ data.tar.gz: a3ca97dfb6d81aa0d7c12e9db9722b1b2eec834cc15be0b066493ccdc1da99031557fe4c0ffd915f40ed9dd09de8d4ac8e28be4b4c3d0dc7bafbd8240b7ab862
data/CHANGELOG.md CHANGED
@@ -1,5 +1,37 @@
1
1
  # Changelog
2
2
 
3
+ ## [v5.0.0.pre2](https://github.com/stimulusreflex/cable_ready/tree/v5.0.0.pre2) (2021-07-21)
4
+
5
+ [Full Changelog](https://github.com/stimulusreflex/cable_ready/compare/v5.0.0.pre1...v5.0.0.pre2)
6
+
7
+ **Implemented enhancements:**
8
+
9
+ - register a CableReady JSON MIME type [\#140](https://github.com/stimulusreflex/cable_ready/pull/140) ([existentialmutt](https://github.com/existentialmutt))
10
+ - Smart options \(they grow up so fast\) [\#136](https://github.com/stimulusreflex/cable_ready/pull/136) ([leastbad](https://github.com/leastbad))
11
+ - Support `to_dom_selector` for operation selectors [\#135](https://github.com/stimulusreflex/cable_ready/pull/135) ([jaredcwhite](https://github.com/jaredcwhite))
12
+ - dom\_id should always be lowercase [\#129](https://github.com/stimulusreflex/cable_ready/pull/129) ([leastbad](https://github.com/leastbad))
13
+
14
+ **Fixed bugs:**
15
+
16
+ - Improve install experience [\#128](https://github.com/stimulusreflex/cable_ready/pull/128) ([leastbad](https://github.com/leastbad))
17
+
18
+ **Closed issues:**
19
+
20
+ - Idea: ability to pass any object which responds to `to_dom_selector` as a selector [\#134](https://github.com/stimulusreflex/cable_ready/issues/134)
21
+
22
+ **Merged pull requests:**
23
+
24
+ - Bump addressable from 2.7.0 to 2.8.0 [\#141](https://github.com/stimulusreflex/cable_ready/pull/141) ([dependabot[bot]](https://github.com/apps/dependabot))
25
+ - chore: make webpack happy with no sideEffects [\#138](https://github.com/stimulusreflex/cable_ready/pull/138) ([ParamagicDev](https://github.com/ParamagicDev))
26
+
27
+ ## [v5.0.0.pre1](https://github.com/stimulusreflex/cable_ready/tree/v5.0.0.pre1) (2021-06-02)
28
+
29
+ [Full Changelog](https://github.com/stimulusreflex/cable_ready/compare/v5.0.0.pre0...v5.0.0.pre1)
30
+
31
+ **Merged pull requests:**
32
+
33
+ - Include app folder in release [\#133](https://github.com/stimulusreflex/cable_ready/pull/133) ([julianrubisch](https://github.com/julianrubisch))
34
+
3
35
  ## [v5.0.0.pre0](https://github.com/stimulusreflex/cable_ready/tree/v5.0.0.pre0) (2021-05-20)
4
36
 
5
37
  [Full Changelog](https://github.com/stimulusreflex/cable_ready/compare/v4.5.0...v5.0.0.pre0)
data/Gemfile.lock CHANGED
@@ -1,67 +1,67 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- cable_ready (5.0.0.pre2)
4
+ cable_ready (5.0.0.pre3)
5
5
  rails (>= 5.2)
6
6
  thread-local (>= 1.1.0)
7
7
 
8
8
  GEM
9
9
  remote: https://rubygems.org/
10
10
  specs:
11
- actioncable (6.1.4)
12
- actionpack (= 6.1.4)
13
- activesupport (= 6.1.4)
11
+ actioncable (6.1.4.1)
12
+ actionpack (= 6.1.4.1)
13
+ activesupport (= 6.1.4.1)
14
14
  nio4r (~> 2.0)
15
15
  websocket-driver (>= 0.6.1)
16
- actionmailbox (6.1.4)
17
- actionpack (= 6.1.4)
18
- activejob (= 6.1.4)
19
- activerecord (= 6.1.4)
20
- activestorage (= 6.1.4)
21
- activesupport (= 6.1.4)
16
+ actionmailbox (6.1.4.1)
17
+ actionpack (= 6.1.4.1)
18
+ activejob (= 6.1.4.1)
19
+ activerecord (= 6.1.4.1)
20
+ activestorage (= 6.1.4.1)
21
+ activesupport (= 6.1.4.1)
22
22
  mail (>= 2.7.1)
23
- actionmailer (6.1.4)
24
- actionpack (= 6.1.4)
25
- actionview (= 6.1.4)
26
- activejob (= 6.1.4)
27
- activesupport (= 6.1.4)
23
+ actionmailer (6.1.4.1)
24
+ actionpack (= 6.1.4.1)
25
+ actionview (= 6.1.4.1)
26
+ activejob (= 6.1.4.1)
27
+ activesupport (= 6.1.4.1)
28
28
  mail (~> 2.5, >= 2.5.4)
29
29
  rails-dom-testing (~> 2.0)
30
- actionpack (6.1.4)
31
- actionview (= 6.1.4)
32
- activesupport (= 6.1.4)
30
+ actionpack (6.1.4.1)
31
+ actionview (= 6.1.4.1)
32
+ activesupport (= 6.1.4.1)
33
33
  rack (~> 2.0, >= 2.0.9)
34
34
  rack-test (>= 0.6.3)
35
35
  rails-dom-testing (~> 2.0)
36
36
  rails-html-sanitizer (~> 1.0, >= 1.2.0)
37
- actiontext (6.1.4)
38
- actionpack (= 6.1.4)
39
- activerecord (= 6.1.4)
40
- activestorage (= 6.1.4)
41
- activesupport (= 6.1.4)
37
+ actiontext (6.1.4.1)
38
+ actionpack (= 6.1.4.1)
39
+ activerecord (= 6.1.4.1)
40
+ activestorage (= 6.1.4.1)
41
+ activesupport (= 6.1.4.1)
42
42
  nokogiri (>= 1.8.5)
43
- actionview (6.1.4)
44
- activesupport (= 6.1.4)
43
+ actionview (6.1.4.1)
44
+ activesupport (= 6.1.4.1)
45
45
  builder (~> 3.1)
46
46
  erubi (~> 1.4)
47
47
  rails-dom-testing (~> 2.0)
48
48
  rails-html-sanitizer (~> 1.1, >= 1.2.0)
49
- activejob (6.1.4)
50
- activesupport (= 6.1.4)
49
+ activejob (6.1.4.1)
50
+ activesupport (= 6.1.4.1)
51
51
  globalid (>= 0.3.6)
52
- activemodel (6.1.4)
53
- activesupport (= 6.1.4)
54
- activerecord (6.1.4)
55
- activemodel (= 6.1.4)
56
- activesupport (= 6.1.4)
57
- activestorage (6.1.4)
58
- actionpack (= 6.1.4)
59
- activejob (= 6.1.4)
60
- activerecord (= 6.1.4)
61
- activesupport (= 6.1.4)
52
+ activemodel (6.1.4.1)
53
+ activesupport (= 6.1.4.1)
54
+ activerecord (6.1.4.1)
55
+ activemodel (= 6.1.4.1)
56
+ activesupport (= 6.1.4.1)
57
+ activestorage (6.1.4.1)
58
+ actionpack (= 6.1.4.1)
59
+ activejob (= 6.1.4.1)
60
+ activerecord (= 6.1.4.1)
61
+ activesupport (= 6.1.4.1)
62
62
  marcel (~> 1.0.0)
63
63
  mini_mime (>= 1.1.0)
64
- activesupport (6.1.4)
64
+ activesupport (6.1.4.1)
65
65
  concurrent-ruby (~> 1.0, >= 1.0.2)
66
66
  i18n (>= 1.6, < 2)
67
67
  minitest (>= 5.1)
@@ -70,7 +70,7 @@ GEM
70
70
  addressable (2.8.0)
71
71
  public_suffix (>= 2.0.2, < 5.0)
72
72
  ast (2.4.2)
73
- async (1.30.0)
73
+ async (1.30.1)
74
74
  console (~> 1.10)
75
75
  nio4r (~> 2.3)
76
76
  timers (~> 4.1)
@@ -95,7 +95,7 @@ GEM
95
95
  fiber-local
96
96
  crass (1.0.6)
97
97
  erubi (1.10.0)
98
- faraday (1.5.1)
98
+ faraday (1.7.0)
99
99
  faraday-em_http (~> 1.0)
100
100
  faraday-em_synchrony (~> 1.0)
101
101
  faraday-excon (~> 1.1)
@@ -103,6 +103,7 @@ GEM
103
103
  faraday-net_http (~> 1.0)
104
104
  faraday-net_http_persistent (~> 1.1)
105
105
  faraday-patron (~> 1.0)
106
+ faraday-rack (~> 1.0)
106
107
  multipart-post (>= 1.2, < 3)
107
108
  ruby2_keywords (>= 0.0.4)
108
109
  faraday-em_http (1.0.0)
@@ -114,6 +115,7 @@ GEM
114
115
  faraday-net_http (1.0.1)
115
116
  faraday-net_http_persistent (1.2.0)
116
117
  faraday-patron (1.0.0)
118
+ faraday-rack (1.0.0)
117
119
  fiber-local (1.0.0)
118
120
  github_changelog_generator (1.16.4)
119
121
  activesupport
@@ -124,11 +126,11 @@ GEM
124
126
  octokit (~> 4.6)
125
127
  rainbow (>= 2.2.1)
126
128
  rake (>= 10.0)
127
- globalid (0.4.2)
128
- activesupport (>= 4.2.0)
129
+ globalid (0.5.2)
130
+ activesupport (>= 5.0)
129
131
  i18n (1.8.10)
130
132
  concurrent-ruby (~> 1.0)
131
- loofah (2.10.0)
133
+ loofah (2.12.0)
132
134
  crass (~> 1.0.2)
133
135
  nokogiri (>= 1.5.9)
134
136
  magic_frozen_string_literal (1.2.0)
@@ -137,14 +139,14 @@ GEM
137
139
  marcel (1.0.1)
138
140
  method_source (0.9.2)
139
141
  mini_mime (1.1.0)
140
- mini_portile2 (2.5.3)
142
+ mini_portile2 (2.6.1)
141
143
  minitest (5.14.4)
142
144
  mocha (1.13.0)
143
145
  multi_json (1.15.0)
144
146
  multipart-post (2.1.1)
145
- nio4r (2.5.7)
146
- nokogiri (1.11.7)
147
- mini_portile2 (~> 2.5.0)
147
+ nio4r (2.5.8)
148
+ nokogiri (1.12.3)
149
+ mini_portile2 (~> 2.6.1)
148
150
  racc (~> 1.4)
149
151
  octokit (4.21.0)
150
152
  faraday (>= 0.9)
@@ -169,29 +171,29 @@ GEM
169
171
  rack (2.2.3)
170
172
  rack-test (1.1.0)
171
173
  rack (>= 1.0, < 3)
172
- rails (6.1.4)
173
- actioncable (= 6.1.4)
174
- actionmailbox (= 6.1.4)
175
- actionmailer (= 6.1.4)
176
- actionpack (= 6.1.4)
177
- actiontext (= 6.1.4)
178
- actionview (= 6.1.4)
179
- activejob (= 6.1.4)
180
- activemodel (= 6.1.4)
181
- activerecord (= 6.1.4)
182
- activestorage (= 6.1.4)
183
- activesupport (= 6.1.4)
174
+ rails (6.1.4.1)
175
+ actioncable (= 6.1.4.1)
176
+ actionmailbox (= 6.1.4.1)
177
+ actionmailer (= 6.1.4.1)
178
+ actionpack (= 6.1.4.1)
179
+ actiontext (= 6.1.4.1)
180
+ actionview (= 6.1.4.1)
181
+ activejob (= 6.1.4.1)
182
+ activemodel (= 6.1.4.1)
183
+ activerecord (= 6.1.4.1)
184
+ activestorage (= 6.1.4.1)
185
+ activesupport (= 6.1.4.1)
184
186
  bundler (>= 1.15.0)
185
- railties (= 6.1.4)
187
+ railties (= 6.1.4.1)
186
188
  sprockets-rails (>= 2.0.0)
187
189
  rails-dom-testing (2.0.3)
188
190
  activesupport (>= 4.2.0)
189
191
  nokogiri (>= 1.6)
190
- rails-html-sanitizer (1.3.0)
192
+ rails-html-sanitizer (1.4.1)
191
193
  loofah (~> 2.3)
192
- railties (6.1.4)
193
- actionpack (= 6.1.4)
194
- activesupport (= 6.1.4)
194
+ railties (6.1.4.1)
195
+ actionpack (= 6.1.4.1)
196
+ activesupport (= 6.1.4.1)
195
197
  method_source
196
198
  rake (>= 0.13)
197
199
  thor (~> 1.0)
@@ -199,16 +201,16 @@ GEM
199
201
  rake (13.0.6)
200
202
  regexp_parser (2.1.1)
201
203
  rexml (3.2.5)
202
- rubocop (1.18.3)
204
+ rubocop (1.18.4)
203
205
  parallel (~> 1.10)
204
206
  parser (>= 3.0.0.0)
205
207
  rainbow (>= 2.2.2, < 4.0)
206
208
  regexp_parser (>= 1.8, < 3.0)
207
209
  rexml
208
- rubocop-ast (>= 1.7.0, < 2.0)
210
+ rubocop-ast (>= 1.8.0, < 2.0)
209
211
  ruby-progressbar (~> 1.7)
210
212
  unicode-display_width (>= 1.4.0, < 3.0)
211
- rubocop-ast (1.8.0)
213
+ rubocop-ast (1.10.0)
212
214
  parser (>= 3.0.1.1)
213
215
  rubocop-performance (1.11.4)
214
216
  rubocop (>= 1.7.0, < 2.0)
@@ -225,8 +227,8 @@ GEM
225
227
  actionpack (>= 4.0)
226
228
  activesupport (>= 4.0)
227
229
  sprockets (>= 3.0.0)
228
- standard (1.1.5)
229
- rubocop (= 1.18.3)
230
+ standard (1.1.7)
231
+ rubocop (= 1.18.4)
230
232
  rubocop-performance (= 1.11.4)
231
233
  standardrb (1.0.0)
232
234
  standard
@@ -54,6 +54,8 @@ module CableReady
54
54
  outer_html
55
55
  prepend
56
56
  push_state
57
+ redirect_to
58
+ reload
57
59
  remove
58
60
  remove_attribute
59
61
  remove_css_class
@@ -48,7 +48,8 @@ module CableReady
48
48
  @previous_selector = options["selector"]
49
49
  options["selector"] = identifiable?(previous_selector) ? dom_id(previous_selector) : previous_selector
50
50
  end
51
- @enqueued_operations[name.to_s] << options
51
+ options["operation"] = name.to_s.camelize(:lower)
52
+ @enqueued_operations << options
52
53
  self
53
54
  }
54
55
  end
@@ -57,26 +58,22 @@ module CableReady
57
58
  @enqueued_operations.to_json(*args)
58
59
  end
59
60
 
60
- def apply!(operations = "{}")
61
+ def apply!(operations = "[]")
61
62
  operations = begin
62
63
  JSON.parse(operations.is_a?(String) ? operations : operations.to_json)
63
64
  rescue JSON::ParserError
64
65
  {}
65
66
  end
66
- operations.each do |name, operation|
67
- operation.each do |enqueued_operation|
68
- @enqueued_operations[name.to_s] << enqueued_operation
69
- end
70
- end
67
+ @enqueued_operations.push(operations)
71
68
  self
72
69
  end
73
70
 
74
71
  def operations_payload
75
- @enqueued_operations.select { |_, list| list.present? }.deep_transform_keys { |key| key.to_s.camelize(:lower) }
72
+ @enqueued_operations.map { |operation| operation.deep_transform_keys! { |key| key.to_s.camelize(:lower) } }
76
73
  end
77
74
 
78
75
  def reset!
79
- @enqueued_operations = Hash.new { |hash, key| hash[key] = [] }
76
+ @enqueued_operations = []
80
77
  @previous_selector = nil
81
78
  end
82
79
  end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module CableReady
4
- VERSION = "5.0.0.pre2"
4
+ VERSION = "5.0.0.pre3"
5
5
  end
data/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "cable_ready",
3
- "version": "5.0.0-pre1",
3
+ "version": "5.0.0-pre2",
4
4
  "description": "CableReady helps you create great real-time user experiences by making it simple to trigger client-side DOM changes from server-side Ruby.",
5
5
  "keywords": [
6
6
  "ruby",
@@ -11,19 +11,19 @@ class CableReady::CableCarTest < ActiveSupport::TestCase
11
11
  test "dispatch should return json-ifiable payload" do
12
12
  CableReady::CableCar.instance.reset!
13
13
  dispatch = CableReady::CableCar.instance.inner_html(selector: "#users", html: "<span>winning</span>").dispatch
14
- assert_equal({"innerHtml" => [{"selector" => "#users", "html" => "<span>winning</span>"}]}, dispatch)
14
+ assert_equal([{"operation" => "innerHtml", "selector" => "#users", "html" => "<span>winning</span>"}], dispatch)
15
15
  end
16
16
 
17
17
  test "dispatch should clear operations" do
18
18
  CableReady::CableCar.instance.reset!
19
19
  CableReady::CableCar.instance.inner_html(selector: "#users", html: "<span>winning</span>").dispatch
20
- assert_equal({}, CableReady::CableCar.instance.instance_variable_get(:@enqueued_operations))
20
+ assert_equal([], CableReady::CableCar.instance.instance_variable_get(:@enqueued_operations))
21
21
  end
22
22
 
23
23
  test "dispatch should maintain operations if clear is false" do
24
24
  CableReady::CableCar.instance.reset!
25
25
  CableReady::CableCar.instance.inner_html(selector: "#users", html: "<span>winning</span>").dispatch(clear: false)
26
- assert_equal({"inner_html" => [{"selector" => "#users", "html" => "<span>winning</span>"}]}, CableReady::CableCar.instance.instance_variable_get(:@enqueued_operations))
26
+ assert_equal([{"operation" => "innerHtml", "selector" => "#users", "html" => "<span>winning</span>"}], CableReady::CableCar.instance.instance_variable_get(:@enqueued_operations))
27
27
  end
28
28
 
29
29
  test "selectors should accept any object which respond_to? to_dom_selector" do
@@ -34,7 +34,7 @@ class CableReady::CableCarTest < ActiveSupport::TestCase
34
34
  end
35
35
  end.new("users")
36
36
  dispatch = CableReady::CableCar.instance.inner_html(selector: my_object, html: "<span>winning</span>").dispatch
37
- assert_equal({"innerHtml" => [{"selector" => ".users", "html" => "<span>winning</span>"}]}, dispatch)
37
+ assert_equal([{"operation" => "innerHtml", "selector" => ".users", "html" => "<span>winning</span>"}], dispatch)
38
38
  end
39
39
 
40
40
  test "selectors should accept any object which respond_to? to_dom_id" do
@@ -45,6 +45,6 @@ class CableReady::CableCarTest < ActiveSupport::TestCase
45
45
  end
46
46
  end.new("users")
47
47
  dispatch = CableReady::CableCar.instance.inner_html(selector: my_object, html: "<span>winning</span>").dispatch
48
- assert_equal({"innerHtml" => [{"selector" => "#users", "html" => "<span>winning</span>"}]}, dispatch)
48
+ assert_equal([{"operation" => "innerHtml", "selector" => "#users", "html" => "<span>winning</span>"}], dispatch)
49
49
  end
50
50
  end
@@ -55,42 +55,42 @@ class CableReady::OperationBuilderTest < ActiveSupport::TestCase
55
55
 
56
56
  operations = @operation_builder.instance_variable_get(:@enqueued_operations)
57
57
 
58
- assert_equal 1, operations["foobar"].size
59
- assert_equal({"name" => "passed_option"}, operations["foobar"].first)
58
+ assert_equal 1, operations.size
59
+ assert_equal({"name" => "passed_option", "operation" => "foobar"}, operations.first)
60
60
  end
61
61
 
62
62
  test "should json-ify operations" do
63
63
  @operation_builder.add_operation_method("foobar")
64
64
  @operation_builder.foobar({name: "passed_option"})
65
- assert_equal("{\"foobar\":[{\"name\":\"passed_option\"}]}", @operation_builder.to_json)
65
+ assert_equal("[{\"name\":\"passed_option\",\"operation\":\"foobar\"}]", @operation_builder.to_json)
66
66
  end
67
67
 
68
68
  test "should apply! many operations" do
69
- @operation_builder.apply!(foobar: [{name: "passed_option"}])
69
+ @operation_builder.apply!({name: "passed_option"})
70
70
 
71
71
  operations = @operation_builder.instance_variable_get(:@enqueued_operations)
72
- assert_equal 1, operations["foobar"].size
73
- assert_equal({"name" => "passed_option"}, operations["foobar"].first)
72
+ assert_equal 1, operations.size
73
+ assert_equal({"name" => "passed_option"}, operations.first)
74
74
  end
75
75
 
76
76
  test "should apply! many operations from a string" do
77
- @operation_builder.apply!(JSON.generate({foobar: [{name: "passed_option"}]}))
77
+ @operation_builder.apply!(JSON.generate({name: "passed_option"}))
78
78
 
79
79
  operations = @operation_builder.instance_variable_get(:@enqueued_operations)
80
- assert_equal 1, operations["foobar"].size
81
- assert_equal({"name" => "passed_option"}, operations["foobar"].first)
80
+ assert_equal 1, operations.size
81
+ assert_equal({"name" => "passed_option"}, operations.first)
82
82
  end
83
83
 
84
84
  test "operations payload should omit empty operations" do
85
85
  @operation_builder.add_operation_method("foobar")
86
86
  payload = @operation_builder.operations_payload
87
- assert_equal({}, payload)
87
+ assert_equal([], payload)
88
88
  end
89
89
 
90
90
  test "operations payload should camelize keys" do
91
91
  @operation_builder.add_operation_method("foo_bar")
92
92
  @operation_builder.foo_bar({beep_boop: "passed_option"})
93
- assert_equal({"fooBar" => [{"beepBoop" => "passed_option"}]}, @operation_builder.operations_payload)
93
+ assert_equal([{"operation" => "fooBar", "beepBoop" => "passed_option"}], @operation_builder.operations_payload)
94
94
  end
95
95
 
96
96
  test "should take first argument as selector" do
@@ -98,9 +98,7 @@ class CableReady::OperationBuilderTest < ActiveSupport::TestCase
98
98
 
99
99
  @operation_builder.inner_html("#smelly", html: "<span>I rock</span>")
100
100
 
101
- operations = {
102
- "innerHtml" => [{"html" => "<span>I rock</span>", "selector" => "#smelly"}]
103
- }
101
+ operations = [{"operation" => "innerHtml", "html" => "<span>I rock</span>", "selector" => "#smelly"}]
104
102
 
105
103
  assert_equal(operations, @operation_builder.operations_payload)
106
104
  end
@@ -111,10 +109,10 @@ class CableReady::OperationBuilderTest < ActiveSupport::TestCase
111
109
 
112
110
  @operation_builder.set_focus("#smelly").inner_html(html: "<span>I rock</span>")
113
111
 
114
- operations = {
115
- "setFocus" => [{"selector" => "#smelly"}],
116
- "innerHtml" => [{"html" => "<span>I rock</span>", "selector" => "#smelly"}]
117
- }
112
+ operations = [
113
+ {"operation" => "setFocus", "selector" => "#smelly"},
114
+ {"operation" => "innerHtml", "html" => "<span>I rock</span>", "selector" => "#smelly"}
115
+ ]
118
116
 
119
117
  assert_equal(operations, @operation_builder.operations_payload)
120
118
  end
@@ -127,7 +125,7 @@ class CableReady::OperationBuilderTest < ActiveSupport::TestCase
127
125
 
128
126
  @operation_builder.inner_html(html: "<span>winning</span>")
129
127
 
130
- assert_equal({"innerHtml" => [{"html" => "<span>winning</span>"}]}, @operation_builder.operations_payload)
128
+ assert_equal([{"operation" => "innerHtml", "html" => "<span>winning</span>"}], @operation_builder.operations_payload)
131
129
  end
132
130
 
133
131
  test "should use previous_selector if present and should use `selector` if explicitly provided" do
@@ -136,15 +134,11 @@ class CableReady::OperationBuilderTest < ActiveSupport::TestCase
136
134
 
137
135
  @operation_builder.set_focus("#smelly").inner_html(html: "<span>I rock</span>").inner_html(html: "<span>I rock too</span>", selector: "#smelly2")
138
136
 
139
- operations = {
140
- "setFocus" => [
141
- {"selector" => "#smelly"}
142
- ],
143
- "innerHtml" => [
144
- {"html" => "<span>I rock</span>", "selector" => "#smelly"},
145
- {"html" => "<span>I rock too</span>", "selector" => "#smelly2"}
146
- ]
147
- }
137
+ operations = [
138
+ {"operation" => "setFocus", "selector" => "#smelly"},
139
+ {"operation" => "innerHtml", "html" => "<span>I rock</span>", "selector" => "#smelly"},
140
+ {"operation" => "innerHtml", "html" => "<span>I rock too</span>", "selector" => "#smelly2"}
141
+ ]
148
142
 
149
143
  assert_equal(operations, @operation_builder.operations_payload)
150
144
  end
@@ -155,11 +149,7 @@ class CableReady::OperationBuilderTest < ActiveSupport::TestCase
155
149
 
156
150
  @operation_builder.inner_html(html: death)
157
151
 
158
- operations = {
159
- "innerHtml" => [
160
- {"html" => "I rock"}
161
- ]
162
- }
152
+ operations = [{"operation" => "innerHtml", "html" => "I rock"}]
163
153
 
164
154
  assert_equal(operations, @operation_builder.operations_payload)
165
155
  end
@@ -170,11 +160,7 @@ class CableReady::OperationBuilderTest < ActiveSupport::TestCase
170
160
 
171
161
  @operation_builder.inner_html(death, html: death)
172
162
 
173
- operations = {
174
- "innerHtml" => [
175
- {"html" => "I rock", "selector" => "#death"}
176
- ]
177
- }
163
+ operations = [{"operation" => "innerHtml", "html" => "I rock", "selector" => "#death"}]
178
164
 
179
165
  assert_equal(operations, @operation_builder.operations_payload)
180
166
  end
@@ -185,11 +171,7 @@ class CableReady::OperationBuilderTest < ActiveSupport::TestCase
185
171
 
186
172
  @operation_builder.inner_html(death)
187
173
 
188
- operations = {
189
- "innerHtml" => [
190
- {"html" => "I rock", "domId" => "death"}
191
- ]
192
- }
174
+ operations = [{"operation" => "innerHtml", "html" => "I rock", "domId" => "death"}]
193
175
 
194
176
  assert_equal(operations, @operation_builder.operations_payload)
195
177
  end
@@ -200,11 +182,7 @@ class CableReady::OperationBuilderTest < ActiveSupport::TestCase
200
182
 
201
183
  @operation_builder.inner_html(life)
202
184
 
203
- operations = {
204
- "innerHtml" => [
205
- {"html" => "You go, girl", "domId" => "life"}
206
- ]
207
- }
185
+ operations = [{"operation" => "innerHtml", "html" => "You go, girl", "domId" => "life"}]
208
186
 
209
187
  assert_equal(operations, @operation_builder.operations_payload)
210
188
  end
data/yarn.lock CHANGED
@@ -1726,9 +1726,9 @@ path-key@^3.0.0, path-key@^3.1.0:
1726
1726
  integrity sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==
1727
1727
 
1728
1728
  path-parse@^1.0.6:
1729
- version "1.0.6"
1730
- resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.6.tgz#d62dbb5679405d72c4737ec58600e9ddcf06d24c"
1731
- integrity sha512-GSmOT2EbHrINBf9SR7CDELwlJ8AENk3Qn7OikK4nFYAu3Ote2+JYNVvkpAEQm3/TLNEJFD/xZJjzyxg3KBWOzw==
1729
+ version "1.0.7"
1730
+ resolved "https://registry.yarnpkg.com/path-parse/-/path-parse-1.0.7.tgz#fbc114b60ca42b30d9daf5858e4bd68bbedb6735"
1731
+ integrity sha512-LDJzPVEEEPR+y48z93A0Ed0yXb8pAByGWo/k5YYdYgpY2/2EsOsksJrq7lOHxryrVOn1ejG6oAp8ahvOIQD8sw==
1732
1732
 
1733
1733
  path-type@^4.0.0:
1734
1734
  version "4.0.0"
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: 5.0.0.pre2
4
+ version: 5.0.0.pre3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Hopkins
8
- autorequire:
8
+ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-21 00:00:00.000000000 Z
11
+ date: 2021-08-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -136,7 +136,7 @@ dependencies:
136
136
  - - ">="
137
137
  - !ruby/object:Gem::Version
138
138
  version: '0'
139
- description:
139
+ description:
140
140
  email:
141
141
  - natehop@gmail.com
142
142
  executables: []
@@ -176,7 +176,6 @@ files:
176
176
  - lib/generators/cable_ready/stream_from_generator.rb
177
177
  - lib/generators/cable_ready/templates/config/initializers/cable_ready.rb
178
178
  - package.json
179
- - tags
180
179
  - test/lib/cable_ready/cable_car_test.rb
181
180
  - test/lib/cable_ready/identifiable_test.rb
182
181
  - test/lib/cable_ready/operation_builder_test.rb
@@ -188,7 +187,7 @@ homepage: https://github.com/stimulusreflex/cable_ready
188
187
  licenses:
189
188
  - MIT
190
189
  metadata: {}
191
- post_install_message:
190
+ post_install_message:
192
191
  rdoc_options: []
193
192
  require_paths:
194
193
  - lib
@@ -203,14 +202,14 @@ required_rubygems_version: !ruby/object:Gem::Requirement
203
202
  - !ruby/object:Gem::Version
204
203
  version: 1.3.1
205
204
  requirements: []
206
- rubygems_version: 3.1.4
207
- signing_key:
205
+ rubygems_version: 3.2.3
206
+ signing_key:
208
207
  specification_version: 4
209
208
  summary: Out-of-Band Server Triggered DOM Operations
210
209
  test_files:
211
- - test/support/generator_test_helpers.rb
212
- - test/lib/generators/cable_ready/channel_generator_test.rb
213
210
  - test/lib/cable_ready/cable_car_test.rb
214
211
  - test/lib/cable_ready/identifiable_test.rb
215
212
  - test/lib/cable_ready/operation_builder_test.rb
213
+ - test/lib/generators/cable_ready/channel_generator_test.rb
214
+ - test/support/generator_test_helpers.rb
216
215
  - test/test_helper.rb
data/tags DELETED
@@ -1,80 +0,0 @@
1
- !_TAG_FILE_FORMAT 2 /extended format; --format=1 will not append ;" to lines/
2
- !_TAG_FILE_SORTED 1 /0=unsorted, 1=sorted, 2=foldcase/
3
- !_TAG_PROGRAM_AUTHOR Darren Hiebert /dhiebert@users.sourceforge.net/
4
- !_TAG_PROGRAM_NAME Exuberant Ctags //
5
- !_TAG_PROGRAM_URL http://ctags.sourceforge.net /official site/
6
- !_TAG_PROGRAM_VERSION 5.8 //
7
- Broadcaster lib/cable_ready/broadcaster.rb /^ module Broadcaster$/;" m class:CableReady
8
- CableReady lib/cable_ready.rb /^module CableReady$/;" m
9
- CableReady lib/cable_ready/broadcaster.rb /^module CableReady$/;" m
10
- CableReady lib/cable_ready/channel.rb /^module CableReady$/;" m
11
- CableReady lib/cable_ready/channels.rb /^module CableReady$/;" m
12
- CableReady lib/cable_ready/config.rb /^module CableReady$/;" m
13
- CableReady lib/cable_ready/version.rb /^module CableReady$/;" m
14
- CableReady lib/generators/cable_ready/channel_generator.rb /^class CableReady::ChannelGenerator < Rails::Generators::NamedBase$/;" c
15
- CableReady test/lib/generators/cable_ready/channel_generator_test.rb /^class CableReady::ChannelGeneratorTest < Rails::Generators::TestCase$/;" c
16
- Channel lib/cable_ready/channel.rb /^ class Channel$/;" c class:CableReady
17
- Channels lib/cable_ready/channels.rb /^ class Channels$/;" c class:CableReady
18
- ClassMethods test/support/generator_test_helpers.rb /^ module ClassMethods$/;" m class:GeneratorTestHelpers
19
- Config lib/cable_ready/config.rb /^ class Config$/;" c class:CableReady
20
- Engine lib/cable_ready.rb /^ class Engine < Rails::Engine$/;" c class:CableReady
21
- GeneratorTestHelpers test/support/generator_test_helpers.rb /^module GeneratorTestHelpers$/;" m
22
- [] lib/cable_ready/channels.rb /^ def [](identifier)$/;" f class:CableReady.Channels
23
- add_operation_method lib/cable_ready/channel.rb /^ def add_operation_method(name)$/;" f class:CableReady.Channel
24
- add_operation_name lib/cable_ready/config.rb /^ def add_operation_name(name)$/;" f class:CableReady.Config
25
- broadcast lib/cable_ready/channel.rb /^ def broadcast(clear: true)$/;" f class:CableReady.Channel
26
- broadcast lib/cable_ready/channels.rb /^ def broadcast(*identifiers, clear: true)$/;" f class:CableReady.Channels
27
- broadcast_to lib/cable_ready/channel.rb /^ def broadcast_to(model, clear: true)$/;" f class:CableReady.Channel
28
- broadcast_to lib/cable_ready/channels.rb /^ def broadcast_to(model, *identifiers, clear: true)$/;" f class:CableReady.Channels
29
- broadcastable_operations lib/cable_ready/channel.rb /^ def broadcastable_operations$/;" f class:CableReady.Channel
30
- cable_ready lib/cable_ready/broadcaster.rb /^ def cable_ready$/;" f class:CableReady.Broadcaster
31
- check_options lib/generators/cable_ready/channel_generator.rb /^ def check_options$/;" f class:CableReady
32
- config lib/cable_ready.rb /^ def self.config$/;" F class:CableReady
33
- configure lib/cable_ready.rb /^ def self.configure$/;" F class:CableReady
34
- const.bubbles javascript/utils.js /^ const init = { bubbles: true, cancelable: true, detail: detail }$/;" p
35
- const.cancelable javascript/utils.js /^ const init = { bubbles: true, cancelable: true, detail: detail }$/;" p
36
- const.detail javascript/utils.js /^ const init = { bubbles: true, cancelable: true, detail: detail }$/;" p
37
- const.value javascript/morph_callbacks.js /^ const ignore = { value: true }$/;" p
38
- create_channel lib/generators/cable_ready/channel_generator.rb /^ def create_channel$/;" f class:CableReady
39
- create_sample_app test/support/generator_test_helpers.rb /^ def create_sample_app$/;" f class:GeneratorTestHelpers.ClassMethods
40
- default_operation_names lib/cable_ready/config.rb /^ def default_operation_names$/;" f class:CableReady.Config
41
- dom_id lib/cable_ready/broadcaster.rb /^ def dom_id(record, prefix = nil)$/;" f class:CableReady.Broadcaster
42
- enhance_channels lib/generators/cable_ready/channel_generator.rb /^ def enhance_channels$/;" f class:CableReady
43
- export.INPUT javascript/enums.js /^ INPUT: true,$/;" p
44
- export.OPTION javascript/enums.js /^ OPTION: true$/;" p
45
- export.SELECT javascript/enums.js /^ SELECT: true$/;" p
46
- export.TEXTAREA javascript/enums.js /^ TEXTAREA: true,$/;" p
47
- export.color javascript/enums.js /^ color: true,$/;" p
48
- export.date javascript/enums.js /^ date: true,$/;" p
49
- export.datetime javascript/enums.js /^ datetime: true,$/;" p
50
- export.datetime-local javascript/enums.js /^ 'datetime-local': true,$/;" p
51
- export.email javascript/enums.js /^ email: true,$/;" p
52
- export.month javascript/enums.js /^ month: true,$/;" p
53
- export.number javascript/enums.js /^ number: true,$/;" p
54
- export.password javascript/enums.js /^ password: true,$/;" p
55
- export.range javascript/enums.js /^ range: true,$/;" p
56
- export.search javascript/enums.js /^ search: true,$/;" p
57
- export.select-multiple javascript/enums.js /^ 'select-multiple': true,$/;" p
58
- export.select-one javascript/enums.js /^ 'select-one': true,$/;" p
59
- export.tel javascript/enums.js /^ tel: true,$/;" p
60
- export.text javascript/enums.js /^ text: true,$/;" p
61
- export.textarea javascript/enums.js /^ textarea: true,$/;" p
62
- export.time javascript/enums.js /^ time: true,$/;" p
63
- export.url javascript/enums.js /^ url: true,$/;" p
64
- export.week javascript/enums.js /^ week: true$/;" p
65
- finalizer_for lib/cable_ready/channel.rb /^ def self.finalizer_for(identifier)$/;" F class:CableReady.Channel
66
- identifier lib/generators/cable_ready/channel_generator.rb /^ def identifier$/;" f class:CableReady
67
- included test/support/generator_test_helpers.rb /^ def self.included(base)$/;" F class:GeneratorTestHelpers
68
- initialize lib/cable_ready/channel.rb /^ def initialize(identifier)$/;" f class:CableReady.Channel
69
- initialize lib/cable_ready/channels.rb /^ def initialize$/;" f class:CableReady.Channels
70
- initialize lib/cable_ready/config.rb /^ def initialize$/;" f class:CableReady.Config
71
- observers lib/cable_ready/config.rb /^ def observers$/;" f class:CableReady.Config
72
- operation_names lib/cable_ready/config.rb /^ def operation_names$/;" f class:CableReady.Config
73
- option_given? lib/generators/cable_ready/channel_generator.rb /^ def option_given?$/;" f class:CableReady
74
- prepare_destination test/support/generator_test_helpers.rb /^ def prepare_destination$/;" f class:GeneratorTestHelpers.ClassMethods
75
- remove_sample_app test/support/generator_test_helpers.rb /^ def remove_sample_app$/;" f class:GeneratorTestHelpers.ClassMethods
76
- reset lib/cable_ready/channel.rb /^ def reset$/;" f class:CableReady.Channel
77
- resource lib/generators/cable_ready/channel_generator.rb /^ def resource$/;" f class:CableReady
78
- sample_app_path test/support/generator_test_helpers.rb /^ def sample_app_path$/;" f class:GeneratorTestHelpers.ClassMethods
79
- using_broadcast_to? lib/generators/cable_ready/channel_generator.rb /^ def using_broadcast_to?$/;" f class:CableReady
80
- using_stimulus? lib/generators/cable_ready/channel_generator.rb /^ def using_stimulus?$/;" f class:CableReady