cable_ready 4.5.0 → 5.0.0

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.
Files changed (78) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -376
  3. data/Gemfile +4 -1
  4. data/Gemfile.lock +146 -144
  5. data/README.md +54 -20
  6. data/Rakefile +8 -8
  7. data/app/assets/javascripts/cable_ready.js +1269 -0
  8. data/app/assets/javascripts/cable_ready.umd.js +1190 -0
  9. data/app/channels/cable_ready/stream.rb +14 -0
  10. data/app/helpers/cable_ready/view_helper.rb +58 -0
  11. data/app/jobs/cable_ready/broadcast_job.rb +15 -0
  12. data/app/models/concerns/cable_ready/updatable/collection_updatable_callbacks.rb +21 -0
  13. data/app/models/concerns/cable_ready/updatable/collections_registry.rb +59 -0
  14. data/app/models/concerns/cable_ready/updatable/memory_cache_debounce_adapter.rb +24 -0
  15. data/app/models/concerns/cable_ready/updatable/model_updatable_callbacks.rb +33 -0
  16. data/app/models/concerns/cable_ready/updatable.rb +211 -0
  17. data/app/models/concerns/extend_has_many.rb +15 -0
  18. data/bin/standardize +1 -1
  19. data/cable_ready.gemspec +20 -6
  20. data/lib/cable_ready/broadcaster.rb +4 -3
  21. data/lib/cable_ready/cable_car.rb +19 -0
  22. data/lib/cable_ready/channel.rb +29 -31
  23. data/lib/cable_ready/channels.rb +4 -5
  24. data/lib/cable_ready/compoundable.rb +11 -0
  25. data/lib/cable_ready/config.rb +28 -1
  26. data/lib/cable_ready/engine.rb +59 -0
  27. data/lib/cable_ready/identifiable.rb +48 -0
  28. data/lib/cable_ready/importmap.rb +4 -0
  29. data/lib/cable_ready/installer.rb +224 -0
  30. data/lib/cable_ready/operation_builder.rb +80 -0
  31. data/lib/cable_ready/sanity_checker.rb +63 -0
  32. data/lib/cable_ready/stream_identifier.rb +13 -0
  33. data/lib/cable_ready/version.rb +1 -1
  34. data/lib/cable_ready.rb +23 -10
  35. data/lib/cable_ready_helper.rb +13 -0
  36. data/lib/generators/cable_ready/channel_generator.rb +110 -0
  37. data/lib/generators/cable_ready/templates/app/javascript/channels/consumer.js.tt +6 -0
  38. data/lib/generators/cable_ready/templates/app/javascript/channels/index.js.esbuild.tt +4 -0
  39. data/lib/generators/cable_ready/templates/app/javascript/channels/index.js.importmap.tt +2 -0
  40. data/lib/generators/cable_ready/templates/app/javascript/channels/index.js.shakapacker.tt +5 -0
  41. data/lib/generators/cable_ready/templates/app/javascript/channels/index.js.vite.tt +1 -0
  42. data/lib/generators/cable_ready/templates/app/javascript/channels/index.js.webpacker.tt +5 -0
  43. data/lib/generators/cable_ready/templates/app/javascript/config/cable_ready.js.tt +4 -0
  44. data/lib/generators/cable_ready/templates/app/javascript/config/index.js.tt +1 -0
  45. data/lib/generators/cable_ready/templates/app/javascript/config/mrujs.js.tt +9 -0
  46. data/lib/generators/cable_ready/templates/app/javascript/controllers/%file_name%_controller.js.tt +38 -0
  47. data/lib/generators/cable_ready/templates/app/javascript/controllers/application.js.tt +11 -0
  48. data/lib/generators/cable_ready/templates/app/javascript/controllers/index.js.esbuild.tt +7 -0
  49. data/lib/generators/cable_ready/templates/app/javascript/controllers/index.js.importmap.tt +5 -0
  50. data/lib/generators/cable_ready/templates/app/javascript/controllers/index.js.shakapacker.tt +5 -0
  51. data/lib/generators/cable_ready/templates/app/javascript/controllers/index.js.vite.tt +5 -0
  52. data/lib/generators/cable_ready/templates/app/javascript/controllers/index.js.webpacker.tt +5 -0
  53. data/lib/generators/cable_ready/templates/config/initializers/cable_ready.rb +27 -0
  54. data/lib/generators/cable_ready/templates/esbuild.config.mjs.tt +94 -0
  55. data/lib/install/action_cable.rb +144 -0
  56. data/lib/install/broadcaster.rb +109 -0
  57. data/lib/install/bundle.rb +54 -0
  58. data/lib/install/compression.rb +51 -0
  59. data/lib/install/config.rb +39 -0
  60. data/lib/install/development.rb +34 -0
  61. data/lib/install/esbuild.rb +101 -0
  62. data/lib/install/importmap.rb +96 -0
  63. data/lib/install/initializers.rb +15 -0
  64. data/lib/install/mrujs.rb +121 -0
  65. data/lib/install/npm_packages.rb +13 -0
  66. data/lib/install/shakapacker.rb +65 -0
  67. data/lib/install/spring.rb +54 -0
  68. data/lib/install/updatable.rb +34 -0
  69. data/lib/install/vite.rb +66 -0
  70. data/lib/install/webpacker.rb +93 -0
  71. data/lib/install/yarn.rb +56 -0
  72. data/lib/tasks/cable_ready/cable_ready.rake +247 -0
  73. data/package.json +42 -13
  74. data/rollup.config.mjs +57 -0
  75. data/web-test-runner.config.mjs +12 -0
  76. data/yarn.lock +3252 -327
  77. metadata +138 -9
  78. data/tags +0 -62
metadata CHANGED
@@ -1,17 +1,59 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: cable_ready
3
3
  version: !ruby/object:Gem::Version
4
- version: 4.5.0
4
+ version: 5.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nathan Hopkins
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-26 00:00:00.000000000 Z
11
+ date: 2023-04-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rails
14
+ name: actionpack
15
+ requirement: !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ">="
18
+ - !ruby/object:Gem::Version
19
+ version: '5.2'
20
+ type: :runtime
21
+ prerelease: false
22
+ version_requirements: !ruby/object:Gem::Requirement
23
+ requirements:
24
+ - - ">="
25
+ - !ruby/object:Gem::Version
26
+ version: '5.2'
27
+ - !ruby/object:Gem::Dependency
28
+ name: actionview
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '5.2'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '5.2'
41
+ - !ruby/object:Gem::Dependency
42
+ name: activesupport
43
+ requirement: !ruby/object:Gem::Requirement
44
+ requirements:
45
+ - - ">="
46
+ - !ruby/object:Gem::Version
47
+ version: '5.2'
48
+ type: :runtime
49
+ prerelease: false
50
+ version_requirements: !ruby/object:Gem::Requirement
51
+ requirements:
52
+ - - ">="
53
+ - !ruby/object:Gem::Version
54
+ version: '5.2'
55
+ - !ruby/object:Gem::Dependency
56
+ name: railties
15
57
  requirement: !ruby/object:Gem::Requirement
16
58
  requirements:
17
59
  - - ">="
@@ -39,7 +81,7 @@ dependencies:
39
81
  - !ruby/object:Gem::Version
40
82
  version: 1.1.0
41
83
  - !ruby/object:Gem::Dependency
42
- name: github_changelog_generator
84
+ name: magic_frozen_string_literal
43
85
  requirement: !ruby/object:Gem::Requirement
44
86
  requirements:
45
87
  - - ">="
@@ -53,7 +95,7 @@ dependencies:
53
95
  - !ruby/object:Gem::Version
54
96
  version: '0'
55
97
  - !ruby/object:Gem::Dependency
56
- name: magic_frozen_string_literal
98
+ name: mocha
57
99
  requirement: !ruby/object:Gem::Requirement
58
100
  requirements:
59
101
  - - ">="
@@ -108,6 +150,34 @@ dependencies:
108
150
  - - ">="
109
151
  - !ruby/object:Gem::Version
110
152
  version: '0'
153
+ - !ruby/object:Gem::Dependency
154
+ name: sqlite3
155
+ requirement: !ruby/object:Gem::Requirement
156
+ requirements:
157
+ - - ">="
158
+ - !ruby/object:Gem::Version
159
+ version: '0'
160
+ type: :development
161
+ prerelease: false
162
+ version_requirements: !ruby/object:Gem::Requirement
163
+ requirements:
164
+ - - ">="
165
+ - !ruby/object:Gem::Version
166
+ version: '0'
167
+ - !ruby/object:Gem::Dependency
168
+ name: standard
169
+ requirement: !ruby/object:Gem::Requirement
170
+ requirements:
171
+ - - '='
172
+ - !ruby/object:Gem::Version
173
+ version: 1.19.1
174
+ type: :development
175
+ prerelease: false
176
+ version_requirements: !ruby/object:Gem::Requirement
177
+ requirements:
178
+ - - '='
179
+ - !ruby/object:Gem::Version
180
+ version: 1.19.1
111
181
  - !ruby/object:Gem::Dependency
112
182
  name: standardrb
113
183
  requirement: !ruby/object:Gem::Requirement
@@ -136,6 +206,17 @@ files:
136
206
  - LICENSE.txt
137
207
  - README.md
138
208
  - Rakefile
209
+ - app/assets/javascripts/cable_ready.js
210
+ - app/assets/javascripts/cable_ready.umd.js
211
+ - app/channels/cable_ready/stream.rb
212
+ - app/helpers/cable_ready/view_helper.rb
213
+ - app/jobs/cable_ready/broadcast_job.rb
214
+ - app/models/concerns/cable_ready/updatable.rb
215
+ - app/models/concerns/cable_ready/updatable/collection_updatable_callbacks.rb
216
+ - app/models/concerns/cable_ready/updatable/collections_registry.rb
217
+ - app/models/concerns/cable_ready/updatable/memory_cache_debounce_adapter.rb
218
+ - app/models/concerns/cable_ready/updatable/model_updatable_callbacks.rb
219
+ - app/models/concerns/extend_has_many.rb
139
220
  - bin/console
140
221
  - bin/loc
141
222
  - bin/setup
@@ -143,14 +224,62 @@ files:
143
224
  - cable_ready.gemspec
144
225
  - lib/cable_ready.rb
145
226
  - lib/cable_ready/broadcaster.rb
227
+ - lib/cable_ready/cable_car.rb
146
228
  - lib/cable_ready/channel.rb
147
229
  - lib/cable_ready/channels.rb
230
+ - lib/cable_ready/compoundable.rb
148
231
  - lib/cable_ready/config.rb
232
+ - lib/cable_ready/engine.rb
233
+ - lib/cable_ready/identifiable.rb
234
+ - lib/cable_ready/importmap.rb
235
+ - lib/cable_ready/installer.rb
236
+ - lib/cable_ready/operation_builder.rb
237
+ - lib/cable_ready/sanity_checker.rb
238
+ - lib/cable_ready/stream_identifier.rb
149
239
  - lib/cable_ready/version.rb
240
+ - lib/cable_ready_helper.rb
241
+ - lib/generators/cable_ready/channel_generator.rb
242
+ - lib/generators/cable_ready/templates/app/javascript/channels/consumer.js.tt
243
+ - lib/generators/cable_ready/templates/app/javascript/channels/index.js.esbuild.tt
244
+ - lib/generators/cable_ready/templates/app/javascript/channels/index.js.importmap.tt
245
+ - lib/generators/cable_ready/templates/app/javascript/channels/index.js.shakapacker.tt
246
+ - lib/generators/cable_ready/templates/app/javascript/channels/index.js.vite.tt
247
+ - lib/generators/cable_ready/templates/app/javascript/channels/index.js.webpacker.tt
248
+ - lib/generators/cable_ready/templates/app/javascript/config/cable_ready.js.tt
249
+ - lib/generators/cable_ready/templates/app/javascript/config/index.js.tt
250
+ - lib/generators/cable_ready/templates/app/javascript/config/mrujs.js.tt
251
+ - lib/generators/cable_ready/templates/app/javascript/controllers/%file_name%_controller.js.tt
252
+ - lib/generators/cable_ready/templates/app/javascript/controllers/application.js.tt
253
+ - lib/generators/cable_ready/templates/app/javascript/controllers/index.js.esbuild.tt
254
+ - lib/generators/cable_ready/templates/app/javascript/controllers/index.js.importmap.tt
255
+ - lib/generators/cable_ready/templates/app/javascript/controllers/index.js.shakapacker.tt
256
+ - lib/generators/cable_ready/templates/app/javascript/controllers/index.js.vite.tt
257
+ - lib/generators/cable_ready/templates/app/javascript/controllers/index.js.webpacker.tt
258
+ - lib/generators/cable_ready/templates/config/initializers/cable_ready.rb
259
+ - lib/generators/cable_ready/templates/esbuild.config.mjs.tt
260
+ - lib/install/action_cable.rb
261
+ - lib/install/broadcaster.rb
262
+ - lib/install/bundle.rb
263
+ - lib/install/compression.rb
264
+ - lib/install/config.rb
265
+ - lib/install/development.rb
266
+ - lib/install/esbuild.rb
267
+ - lib/install/importmap.rb
268
+ - lib/install/initializers.rb
269
+ - lib/install/mrujs.rb
270
+ - lib/install/npm_packages.rb
271
+ - lib/install/shakapacker.rb
272
+ - lib/install/spring.rb
273
+ - lib/install/updatable.rb
274
+ - lib/install/vite.rb
275
+ - lib/install/webpacker.rb
276
+ - lib/install/yarn.rb
277
+ - lib/tasks/cable_ready/cable_ready.rake
150
278
  - package.json
151
- - tags
279
+ - rollup.config.mjs
280
+ - web-test-runner.config.mjs
152
281
  - yarn.lock
153
- homepage: https://github.com/hopsoft/cable_ready
282
+ homepage: https://github.com/stimulusreflex/cable_ready
154
283
  licenses:
155
284
  - MIT
156
285
  metadata: {}
@@ -162,14 +291,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
162
291
  requirements:
163
292
  - - ">="
164
293
  - !ruby/object:Gem::Version
165
- version: '0'
294
+ version: 2.7.0
166
295
  required_rubygems_version: !ruby/object:Gem::Requirement
167
296
  requirements:
168
297
  - - ">="
169
298
  - !ruby/object:Gem::Version
170
299
  version: '0'
171
300
  requirements: []
172
- rubygems_version: 3.1.4
301
+ rubygems_version: 3.4.1
173
302
  signing_key:
174
303
  specification_version: 4
175
304
  summary: Out-of-Band Server Triggered DOM Operations
data/tags DELETED
@@ -1,62 +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
- Channel lib/cable_ready/channel.rb /^ class Channel$/;" c class:CableReady
15
- Channels lib/cable_ready/channels.rb /^ class Channels$/;" c class:CableReady
16
- Config lib/cable_ready/config.rb /^ class Config$/;" c class:CableReady
17
- Engine lib/cable_ready.rb /^ class Engine < Rails::Engine$/;" c class:CableReady
18
- [] lib/cable_ready/channels.rb /^ def [](identifier)$/;" f class:CableReady.Channels
19
- add_operation_definition lib/cable_ready/config.rb /^ def add_operation_definition(name)$/;" f class:CableReady.Config
20
- add_operation_method lib/cable_ready/channel.rb /^ def add_operation_method(name)$/;" f class:CableReady.Channel
21
- broadcast lib/cable_ready/channel.rb /^ def broadcast(clear: true)$/;" f class:CableReady.Channel
22
- broadcast lib/cable_ready/channels.rb /^ def broadcast(*identifiers, clear: true)$/;" f class:CableReady.Channels
23
- broadcast_to lib/cable_ready/channel.rb /^ def broadcast_to(model, clear: true)$/;" f class:CableReady.Channel
24
- broadcast_to lib/cable_ready/channels.rb /^ def broadcast_to(model, *identifiers, clear: true)$/;" f class:CableReady.Channels
25
- broadcastable_operations lib/cable_ready/channel.rb /^ def broadcastable_operations$/;" f class:CableReady.Channel
26
- cable_ready lib/cable_ready/broadcaster.rb /^ def cable_ready$/;" f class:CableReady.Broadcaster
27
- config lib/cable_ready.rb /^ def self.config$/;" F class:CableReady
28
- configure lib/cable_ready.rb /^ def self.configure$/;" F class:CableReady
29
- const.bubbles javascript/utils.js /^ const init = { bubbles: true, cancelable: true, detail: detail }$/;" p
30
- const.cancelable javascript/utils.js /^ const init = { bubbles: true, cancelable: true, detail: detail }$/;" p
31
- const.detail javascript/utils.js /^ const init = { bubbles: true, cancelable: true, detail: detail }$/;" p
32
- const.pushState javascript/cable_ready.js /^ pushState: config => {$/;" p
33
- const.value javascript/callbacks.js /^ const ignore = { value: true }$/;" p
34
- default_operation_names lib/cable_ready/config.rb /^ def default_operation_names$/;" f class:CableReady.Config
35
- dom_id lib/cable_ready/broadcaster.rb /^ def dom_id(record, prefix = nil)$/;" f class:CableReady.Broadcaster
36
- export.INPUT javascript/enums.js /^ INPUT: true,$/;" p
37
- export.OPTION javascript/enums.js /^ OPTION: true$/;" p
38
- export.SELECT javascript/enums.js /^ SELECT: true$/;" p
39
- export.TEXTAREA javascript/enums.js /^ TEXTAREA: true,$/;" p
40
- export.color javascript/enums.js /^ color: true,$/;" p
41
- export.date javascript/enums.js /^ date: true,$/;" p
42
- export.datetime javascript/enums.js /^ datetime: true,$/;" p
43
- export.datetime-local javascript/enums.js /^ 'datetime-local': true,$/;" p
44
- export.email javascript/enums.js /^ email: true,$/;" p
45
- export.month javascript/enums.js /^ month: true,$/;" p
46
- export.number javascript/enums.js /^ number: true,$/;" p
47
- export.password javascript/enums.js /^ password: true,$/;" p
48
- export.range javascript/enums.js /^ range: true,$/;" p
49
- export.search javascript/enums.js /^ search: true,$/;" p
50
- export.select-multiple javascript/enums.js /^ 'select-multiple': true,$/;" p
51
- export.select-one javascript/enums.js /^ 'select-one': true,$/;" p
52
- export.tel javascript/enums.js /^ tel: true,$/;" p
53
- export.text javascript/enums.js /^ text: true,$/;" p
54
- export.textarea javascript/enums.js /^ textarea: true,$/;" p
55
- export.time javascript/enums.js /^ time: true,$/;" p
56
- export.url javascript/enums.js /^ url: true,$/;" p
57
- export.week javascript/enums.js /^ week: true$/;" p
58
- initialize lib/cable_ready/channel.rb /^ def initialize(identifier)$/;" f class:CableReady.Channel
59
- initialize lib/cable_ready/channels.rb /^ def initialize$/;" f class:CableReady.Channels
60
- initialize lib/cable_ready/config.rb /^ def initialize$/;" f class:CableReady.Config
61
- operation_names lib/cable_ready/config.rb /^ def operation_names$/;" f class:CableReady.Config
62
- reset lib/cable_ready/channel.rb /^ def reset$/;" f class:CableReady.Channel