cable_ready 5.0.0.pre8 → 5.0.0.pre10

Sign up to get free protection for your applications and to get access to all the features.
Files changed (118) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -542
  3. data/Gemfile +4 -1
  4. data/Gemfile.lock +125 -168
  5. data/IMPLEMENTATION.md +93 -0
  6. data/README.md +36 -10
  7. data/Rakefile +0 -8
  8. data/app/assets/javascripts/cable_ready.js +1265 -0
  9. data/app/assets/javascripts/cable_ready.min.js +2 -0
  10. data/app/assets/javascripts/cable_ready.min.js.map +1 -0
  11. data/app/assets/javascripts/cable_ready.umd.js +1186 -0
  12. data/app/assets/javascripts/cable_ready.umd.min.js +2 -0
  13. data/app/assets/javascripts/cable_ready.umd.min.js.map +1 -0
  14. data/app/channels/cable_ready/stream.rb +7 -5
  15. data/app/helpers/cable_ready/view_helper.rb +58 -0
  16. data/app/jobs/cable_ready_broadcast_job.rb +9 -8
  17. data/app/models/concerns/cable_ready/updatable/collection_updatable_callbacks.rb +2 -0
  18. data/app/models/concerns/cable_ready/updatable/collections_registry.rb +2 -0
  19. data/app/models/concerns/cable_ready/updatable/model_updatable_callbacks.rb +6 -3
  20. data/app/models/concerns/cable_ready/updatable.rb +110 -17
  21. data/app/models/concerns/extend_has_many.rb +2 -0
  22. data/cable_ready.gemspec +40 -0
  23. data/lib/cable_ready/broadcaster.rb +2 -0
  24. data/lib/cable_ready/cable_car.rb +2 -0
  25. data/lib/cable_ready/channel.rb +12 -4
  26. data/lib/cable_ready/channels.rb +3 -1
  27. data/lib/cable_ready/config.rb +16 -2
  28. data/lib/cable_ready/engine.rb +50 -0
  29. data/lib/cable_ready/identifiable.rb +23 -5
  30. data/lib/cable_ready/importmap.rb +4 -0
  31. data/lib/cable_ready/installer.rb +224 -0
  32. data/lib/cable_ready/operation_builder.rb +1 -1
  33. data/lib/cable_ready/sanity_checker.rb +1 -31
  34. data/lib/cable_ready/version.rb +1 -1
  35. data/lib/cable_ready.rb +4 -26
  36. data/lib/cable_ready_helper.rb +13 -0
  37. data/lib/generators/cable_ready/channel_generator.rb +51 -12
  38. data/lib/generators/cable_ready/templates/config/initializers/cable_ready.rb +10 -6
  39. data/lib/install/action_cable.rb +144 -0
  40. data/lib/install/broadcaster.rb +109 -0
  41. data/lib/install/bundle.rb +54 -0
  42. data/lib/install/compression.rb +51 -0
  43. data/lib/install/config.rb +39 -0
  44. data/lib/install/development.rb +34 -0
  45. data/lib/install/esbuild.rb +101 -0
  46. data/lib/install/importmap.rb +96 -0
  47. data/lib/install/initializers.rb +15 -0
  48. data/lib/install/mrujs.rb +121 -0
  49. data/lib/install/npm_packages.rb +13 -0
  50. data/lib/install/shakapacker.rb +61 -0
  51. data/lib/install/spring.rb +54 -0
  52. data/lib/install/updatable.rb +34 -0
  53. data/lib/install/vite.rb +62 -0
  54. data/lib/install/webpacker.rb +81 -0
  55. data/lib/install/yarn.rb +56 -0
  56. data/lib/tasks/cable_ready/cable_ready.rake +249 -0
  57. data/package.json +61 -0
  58. data/rollup.config.mjs +76 -0
  59. data/web-test-runner.config.mjs +12 -0
  60. data/yarn.lock +4623 -0
  61. metadata +96 -129
  62. data/LATEST +0 -1
  63. data/app/helpers/cable_ready_helper.rb +0 -25
  64. data/lib/generators/cable_ready/helpers_generator.rb +0 -43
  65. data/lib/generators/cable_ready/initializer_generator.rb +0 -14
  66. data/test/dummy/app/channels/application_cable/channel.rb +0 -4
  67. data/test/dummy/app/channels/application_cable/connection.rb +0 -4
  68. data/test/dummy/app/controllers/application_controller.rb +0 -2
  69. data/test/dummy/app/helpers/application_helper.rb +0 -2
  70. data/test/dummy/app/jobs/application_job.rb +0 -7
  71. data/test/dummy/app/mailers/application_mailer.rb +0 -4
  72. data/test/dummy/app/models/application_record.rb +0 -3
  73. data/test/dummy/app/models/global_idable_entity.rb +0 -16
  74. data/test/dummy/app/models/post.rb +0 -4
  75. data/test/dummy/app/models/section.rb +0 -6
  76. data/test/dummy/app/models/team.rb +0 -6
  77. data/test/dummy/app/models/topic.rb +0 -4
  78. data/test/dummy/app/models/user.rb +0 -7
  79. data/test/dummy/config/application.rb +0 -22
  80. data/test/dummy/config/boot.rb +0 -5
  81. data/test/dummy/config/environment.rb +0 -5
  82. data/test/dummy/config/environments/development.rb +0 -76
  83. data/test/dummy/config/environments/production.rb +0 -120
  84. data/test/dummy/config/environments/test.rb +0 -59
  85. data/test/dummy/config/initializers/application_controller_renderer.rb +0 -8
  86. data/test/dummy/config/initializers/assets.rb +0 -12
  87. data/test/dummy/config/initializers/backtrace_silencers.rb +0 -8
  88. data/test/dummy/config/initializers/cable_ready.rb +0 -18
  89. data/test/dummy/config/initializers/content_security_policy.rb +0 -28
  90. data/test/dummy/config/initializers/cookies_serializer.rb +0 -5
  91. data/test/dummy/config/initializers/filter_parameter_logging.rb +0 -6
  92. data/test/dummy/config/initializers/inflections.rb +0 -16
  93. data/test/dummy/config/initializers/mime_types.rb +0 -4
  94. data/test/dummy/config/initializers/permissions_policy.rb +0 -11
  95. data/test/dummy/config/initializers/wrap_parameters.rb +0 -14
  96. data/test/dummy/config/puma.rb +0 -43
  97. data/test/dummy/config/routes.rb +0 -3
  98. data/test/dummy/db/migrate/20210902154139_create_users.rb +0 -9
  99. data/test/dummy/db/migrate/20210902154153_create_posts.rb +0 -10
  100. data/test/dummy/db/migrate/20210904081930_create_topics.rb +0 -9
  101. data/test/dummy/db/migrate/20210904093607_create_sections.rb +0 -9
  102. data/test/dummy/db/migrate/20210913191735_create_teams.rb +0 -8
  103. data/test/dummy/db/migrate/20210913191759_add_team_reference_to_users.rb +0 -5
  104. data/test/dummy/db/schema.rb +0 -49
  105. data/test/dummy/test/models/post_test.rb +0 -7
  106. data/test/dummy/test/models/section_test.rb +0 -7
  107. data/test/dummy/test/models/team_test.rb +0 -7
  108. data/test/dummy/test/models/topic_test.rb +0 -7
  109. data/test/dummy/test/models/user_test.rb +0 -7
  110. data/test/lib/cable_ready/cable_car_test.rb +0 -50
  111. data/test/lib/cable_ready/compoundable_test.rb +0 -26
  112. data/test/lib/cable_ready/helper_test.rb +0 -25
  113. data/test/lib/cable_ready/identifiable_test.rb +0 -69
  114. data/test/lib/cable_ready/operation_builder_test.rb +0 -189
  115. data/test/lib/cable_ready/updatable_test.rb +0 -112
  116. data/test/lib/generators/cable_ready/channel_generator_test.rb +0 -157
  117. data/test/support/generator_test_helpers.rb +0 -28
  118. data/test/test_helper.rb +0 -18
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: 5.0.0.pre8
4
+ version: 5.0.0.pre10
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-11-22 00:00:00.000000000 Z
11
+ date: 2023-02-15 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
  - - ">="
@@ -109,7 +151,7 @@ dependencies:
109
151
  - !ruby/object:Gem::Version
110
152
  version: '0'
111
153
  - !ruby/object:Gem::Dependency
112
- name: standardrb
154
+ name: sqlite3
113
155
  requirement: !ruby/object:Gem::Requirement
114
156
  requirements:
115
157
  - - ">="
@@ -123,21 +165,21 @@ dependencies:
123
165
  - !ruby/object:Gem::Version
124
166
  version: '0'
125
167
  - !ruby/object:Gem::Dependency
126
- name: mocha
168
+ name: standard
127
169
  requirement: !ruby/object:Gem::Requirement
128
170
  requirements:
129
- - - ">="
171
+ - - '='
130
172
  - !ruby/object:Gem::Version
131
- version: '0'
173
+ version: 1.19.1
132
174
  type: :development
133
175
  prerelease: false
134
176
  version_requirements: !ruby/object:Gem::Requirement
135
177
  requirements:
136
- - - ">="
178
+ - - '='
137
179
  - !ruby/object:Gem::Version
138
- version: '0'
180
+ version: 1.19.1
139
181
  - !ruby/object:Gem::Dependency
140
- name: sqlite3
182
+ name: standardrb
141
183
  requirement: !ruby/object:Gem::Requirement
142
184
  requirements:
143
185
  - - ">="
@@ -150,7 +192,7 @@ dependencies:
150
192
  - - ">="
151
193
  - !ruby/object:Gem::Version
152
194
  version: '0'
153
- description:
195
+ description:
154
196
  email:
155
197
  - natehop@gmail.com
156
198
  executables: []
@@ -161,12 +203,18 @@ files:
161
203
  - CODE_OF_CONDUCT.md
162
204
  - Gemfile
163
205
  - Gemfile.lock
164
- - LATEST
206
+ - IMPLEMENTATION.md
165
207
  - LICENSE.txt
166
208
  - README.md
167
209
  - Rakefile
210
+ - app/assets/javascripts/cable_ready.js
211
+ - app/assets/javascripts/cable_ready.min.js
212
+ - app/assets/javascripts/cable_ready.min.js.map
213
+ - app/assets/javascripts/cable_ready.umd.js
214
+ - app/assets/javascripts/cable_ready.umd.min.js
215
+ - app/assets/javascripts/cable_ready.umd.min.js.map
168
216
  - app/channels/cable_ready/stream.rb
169
- - app/helpers/cable_ready_helper.rb
217
+ - app/helpers/cable_ready/view_helper.rb
170
218
  - app/jobs/cable_ready_broadcast_job.rb
171
219
  - app/models/concerns/cable_ready/updatable.rb
172
220
  - app/models/concerns/cable_ready/updatable/collection_updatable_callbacks.rb
@@ -177,6 +225,7 @@ files:
177
225
  - bin/loc
178
226
  - bin/setup
179
227
  - bin/standardize
228
+ - cable_ready.gemspec
180
229
  - lib/cable_ready.rb
181
230
  - lib/cable_ready/broadcaster.rb
182
231
  - lib/cable_ready/cable_car.rb
@@ -184,73 +233,44 @@ files:
184
233
  - lib/cable_ready/channels.rb
185
234
  - lib/cable_ready/compoundable.rb
186
235
  - lib/cable_ready/config.rb
236
+ - lib/cable_ready/engine.rb
187
237
  - lib/cable_ready/identifiable.rb
238
+ - lib/cable_ready/importmap.rb
239
+ - lib/cable_ready/installer.rb
188
240
  - lib/cable_ready/operation_builder.rb
189
241
  - lib/cable_ready/sanity_checker.rb
190
242
  - lib/cable_ready/stream_identifier.rb
191
243
  - lib/cable_ready/version.rb
244
+ - lib/cable_ready_helper.rb
192
245
  - lib/generators/cable_ready/channel_generator.rb
193
- - lib/generators/cable_ready/helpers_generator.rb
194
- - lib/generators/cable_ready/initializer_generator.rb
195
246
  - lib/generators/cable_ready/templates/config/initializers/cable_ready.rb
196
- - test/dummy/app/channels/application_cable/channel.rb
197
- - test/dummy/app/channels/application_cable/connection.rb
198
- - test/dummy/app/controllers/application_controller.rb
199
- - test/dummy/app/helpers/application_helper.rb
200
- - test/dummy/app/jobs/application_job.rb
201
- - test/dummy/app/mailers/application_mailer.rb
202
- - test/dummy/app/models/application_record.rb
203
- - test/dummy/app/models/global_idable_entity.rb
204
- - test/dummy/app/models/post.rb
205
- - test/dummy/app/models/section.rb
206
- - test/dummy/app/models/team.rb
207
- - test/dummy/app/models/topic.rb
208
- - test/dummy/app/models/user.rb
209
- - test/dummy/config/application.rb
210
- - test/dummy/config/boot.rb
211
- - test/dummy/config/environment.rb
212
- - test/dummy/config/environments/development.rb
213
- - test/dummy/config/environments/production.rb
214
- - test/dummy/config/environments/test.rb
215
- - test/dummy/config/initializers/application_controller_renderer.rb
216
- - test/dummy/config/initializers/assets.rb
217
- - test/dummy/config/initializers/backtrace_silencers.rb
218
- - test/dummy/config/initializers/cable_ready.rb
219
- - test/dummy/config/initializers/content_security_policy.rb
220
- - test/dummy/config/initializers/cookies_serializer.rb
221
- - test/dummy/config/initializers/filter_parameter_logging.rb
222
- - test/dummy/config/initializers/inflections.rb
223
- - test/dummy/config/initializers/mime_types.rb
224
- - test/dummy/config/initializers/permissions_policy.rb
225
- - test/dummy/config/initializers/wrap_parameters.rb
226
- - test/dummy/config/puma.rb
227
- - test/dummy/config/routes.rb
228
- - test/dummy/db/migrate/20210902154139_create_users.rb
229
- - test/dummy/db/migrate/20210902154153_create_posts.rb
230
- - test/dummy/db/migrate/20210904081930_create_topics.rb
231
- - test/dummy/db/migrate/20210904093607_create_sections.rb
232
- - test/dummy/db/migrate/20210913191735_create_teams.rb
233
- - test/dummy/db/migrate/20210913191759_add_team_reference_to_users.rb
234
- - test/dummy/db/schema.rb
235
- - test/dummy/test/models/post_test.rb
236
- - test/dummy/test/models/section_test.rb
237
- - test/dummy/test/models/team_test.rb
238
- - test/dummy/test/models/topic_test.rb
239
- - test/dummy/test/models/user_test.rb
240
- - test/lib/cable_ready/cable_car_test.rb
241
- - test/lib/cable_ready/compoundable_test.rb
242
- - test/lib/cable_ready/helper_test.rb
243
- - test/lib/cable_ready/identifiable_test.rb
244
- - test/lib/cable_ready/operation_builder_test.rb
245
- - test/lib/cable_ready/updatable_test.rb
246
- - test/lib/generators/cable_ready/channel_generator_test.rb
247
- - test/support/generator_test_helpers.rb
248
- - test/test_helper.rb
247
+ - lib/install/action_cable.rb
248
+ - lib/install/broadcaster.rb
249
+ - lib/install/bundle.rb
250
+ - lib/install/compression.rb
251
+ - lib/install/config.rb
252
+ - lib/install/development.rb
253
+ - lib/install/esbuild.rb
254
+ - lib/install/importmap.rb
255
+ - lib/install/initializers.rb
256
+ - lib/install/mrujs.rb
257
+ - lib/install/npm_packages.rb
258
+ - lib/install/shakapacker.rb
259
+ - lib/install/spring.rb
260
+ - lib/install/updatable.rb
261
+ - lib/install/vite.rb
262
+ - lib/install/webpacker.rb
263
+ - lib/install/yarn.rb
264
+ - lib/tasks/cable_ready/cable_ready.rake
265
+ - package.json
266
+ - rollup.config.mjs
267
+ - web-test-runner.config.mjs
268
+ - yarn.lock
249
269
  homepage: https://github.com/stimulusreflex/cable_ready
250
270
  licenses:
251
271
  - MIT
252
272
  metadata: {}
253
- post_install_message:
273
+ post_install_message:
254
274
  rdoc_options: []
255
275
  require_paths:
256
276
  - lib
@@ -258,68 +278,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
258
278
  requirements:
259
279
  - - ">="
260
280
  - !ruby/object:Gem::Version
261
- version: '0'
281
+ version: 2.7.0
262
282
  required_rubygems_version: !ruby/object:Gem::Requirement
263
283
  requirements:
264
284
  - - ">"
265
285
  - !ruby/object:Gem::Version
266
286
  version: 1.3.1
267
287
  requirements: []
268
- rubygems_version: 3.1.6
269
- signing_key:
288
+ rubygems_version: 3.4.1
289
+ signing_key:
270
290
  specification_version: 4
271
291
  summary: Out-of-Band Server Triggered DOM Operations
272
- test_files:
273
- - test/dummy/db/migrate/20210904093607_create_sections.rb
274
- - test/dummy/db/migrate/20210913191759_add_team_reference_to_users.rb
275
- - test/dummy/db/migrate/20210904081930_create_topics.rb
276
- - test/dummy/db/migrate/20210913191735_create_teams.rb
277
- - test/dummy/db/migrate/20210902154153_create_posts.rb
278
- - test/dummy/db/migrate/20210902154139_create_users.rb
279
- - test/dummy/db/schema.rb
280
- - test/dummy/config/environment.rb
281
- - test/dummy/config/routes.rb
282
- - test/dummy/config/application.rb
283
- - test/dummy/config/initializers/mime_types.rb
284
- - test/dummy/config/initializers/content_security_policy.rb
285
- - test/dummy/config/initializers/backtrace_silencers.rb
286
- - test/dummy/config/initializers/permissions_policy.rb
287
- - test/dummy/config/initializers/wrap_parameters.rb
288
- - test/dummy/config/initializers/assets.rb
289
- - test/dummy/config/initializers/inflections.rb
290
- - test/dummy/config/initializers/filter_parameter_logging.rb
291
- - test/dummy/config/initializers/cookies_serializer.rb
292
- - test/dummy/config/initializers/application_controller_renderer.rb
293
- - test/dummy/config/initializers/cable_ready.rb
294
- - test/dummy/config/boot.rb
295
- - test/dummy/config/puma.rb
296
- - test/dummy/config/environments/test.rb
297
- - test/dummy/config/environments/production.rb
298
- - test/dummy/config/environments/development.rb
299
- - test/dummy/app/channels/application_cable/channel.rb
300
- - test/dummy/app/channels/application_cable/connection.rb
301
- - test/dummy/app/jobs/application_job.rb
302
- - test/dummy/app/helpers/application_helper.rb
303
- - test/dummy/app/controllers/application_controller.rb
304
- - test/dummy/app/models/user.rb
305
- - test/dummy/app/models/section.rb
306
- - test/dummy/app/models/post.rb
307
- - test/dummy/app/models/team.rb
308
- - test/dummy/app/models/topic.rb
309
- - test/dummy/app/models/application_record.rb
310
- - test/dummy/app/models/global_idable_entity.rb
311
- - test/dummy/app/mailers/application_mailer.rb
312
- - test/dummy/test/models/section_test.rb
313
- - test/dummy/test/models/post_test.rb
314
- - test/dummy/test/models/user_test.rb
315
- - test/dummy/test/models/team_test.rb
316
- - test/dummy/test/models/topic_test.rb
317
- - test/support/generator_test_helpers.rb
318
- - test/lib/generators/cable_ready/channel_generator_test.rb
319
- - test/lib/cable_ready/cable_car_test.rb
320
- - test/lib/cable_ready/helper_test.rb
321
- - test/lib/cable_ready/identifiable_test.rb
322
- - test/lib/cable_ready/compoundable_test.rb
323
- - test/lib/cable_ready/operation_builder_test.rb
324
- - test/lib/cable_ready/updatable_test.rb
325
- - test/test_helper.rb
292
+ test_files: []
data/LATEST DELETED
@@ -1 +0,0 @@
1
- 4.5.0
@@ -1,25 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- module CableReadyHelper
4
- include CableReady::Compoundable
5
- include CableReady::StreamIdentifier
6
-
7
- def stream_from(*keys, html_options: {})
8
- tag.stream_from(**build_options(*keys, html_options))
9
- end
10
-
11
- def updates_for(*keys, url: nil, debounce: nil, only: nil, html_options: {}, &block)
12
- options = build_options(*keys, html_options)
13
- options[:url] = url if url
14
- options[:debounce] = debounce if debounce
15
- options[:only] = only if only
16
- tag.updates_for(**options) { capture(&block) }
17
- end
18
-
19
- private
20
-
21
- def build_options(*keys, html_options)
22
- keys.select!(&:itself)
23
- {identifier: signed_stream_identifier(compound(keys))}.merge(html_options)
24
- end
25
- end
@@ -1,43 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rails/generators"
4
- require "fileutils"
5
-
6
- module CableReady
7
- class HelpersGenerator < Rails::Generators::Base
8
- desc "Initializes CableReady with a reference to the shared ActionCable consumer"
9
- source_root File.expand_path("templates", __dir__)
10
-
11
- def copy_controller_file
12
- main_folder = defined?(Webpacker) ? Webpacker.config.source_path.to_s.gsub("#{Rails.root}/", "") : "app/javascript"
13
-
14
- filepath = [
15
- "#{main_folder}/controllers/index.js",
16
- "#{main_folder}/controllers/index.ts",
17
- "#{main_folder}/packs/application.js",
18
- "#{main_folder}/packs/application.ts"
19
- ]
20
- .select { |path| File.exist?(path) }
21
- .map { |path| Rails.root.join(path) }
22
- .first
23
-
24
- lines = File.open(filepath, "r") { |f| f.readlines }
25
-
26
- unless lines.find { |line| line.start_with?("import CableReady") }
27
- matches = lines.select { |line| line =~ /\A(require|import)/ }
28
- lines.insert lines.index(matches.last).to_i + 1, "import CableReady from 'cable_ready'\n"
29
- File.open(filepath, "w") { |f| f.write lines.join }
30
- end
31
-
32
- unless lines.find { |line| line.start_with?("import consumer") }
33
- matches = lines.select { |line| line =~ /\A(require|import)/ }
34
- lines.insert lines.index(matches.last).to_i + 1, "import consumer from '../channels/consumer'\n"
35
- File.open(filepath, "w") { |f| f.write lines.join }
36
- end
37
-
38
- unless lines.find { |line| line.include?("CableReady.initialize({ consumer })") }
39
- append_to_file filepath, "CableReady.initialize({ consumer })"
40
- end
41
- end
42
- end
43
- end
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rails/generators"
4
-
5
- module CableReady
6
- class InitializerGenerator < Rails::Generators::Base
7
- desc "Creates a CableReady initializer template in config/initializers"
8
- source_root File.expand_path("templates", __dir__)
9
-
10
- def copy_initializer_file
11
- copy_file "config/initializers/cable_ready.rb"
12
- end
13
- end
14
- end
@@ -1,4 +0,0 @@
1
- module ApplicationCable
2
- class Channel < ActionCable::Channel::Base
3
- end
4
- end
@@ -1,4 +0,0 @@
1
- module ApplicationCable
2
- class Connection < ActionCable::Connection::Base
3
- end
4
- end
@@ -1,2 +0,0 @@
1
- class ApplicationController < ActionController::Base
2
- end
@@ -1,2 +0,0 @@
1
- module ApplicationHelper
2
- end
@@ -1,7 +0,0 @@
1
- class ApplicationJob < ActiveJob::Base
2
- # Automatically retry jobs that encountered a deadlock
3
- # retry_on ActiveRecord::Deadlocked
4
-
5
- # Most jobs are safe to ignore if the underlying records are no longer available
6
- # discard_on ActiveJob::DeserializationError
7
- end
@@ -1,4 +0,0 @@
1
- class ApplicationMailer < ActionMailer::Base
2
- default from: 'from@example.com'
3
- layout 'mailer'
4
- end
@@ -1,3 +0,0 @@
1
- class ApplicationRecord < ActiveRecord::Base
2
- self.abstract_class = true
3
- end
@@ -1,16 +0,0 @@
1
- class GlobalIdableEntity
2
- include GlobalID::Identification
3
- include CableReady::Updatable
4
-
5
- def id
6
- "fake-id"
7
- end
8
-
9
- def self.find(id)
10
- new if id == "fake-id"
11
- end
12
-
13
- def fake_update
14
- ModelUpdatableCallbacks.new(:update).after_commit(self)
15
- end
16
- end
@@ -1,4 +0,0 @@
1
- class Post < ApplicationRecord
2
- include CableReady::Updatable
3
- belongs_to :user
4
- end
@@ -1,6 +0,0 @@
1
- class Section < ApplicationRecord
2
- include CableReady::Updatable
3
- enable_updates if: -> { updates_enabled }
4
-
5
- attribute :updates_enabled, :boolean, default: false
6
- end
@@ -1,6 +0,0 @@
1
- class Team < ApplicationRecord
2
- include CableReady::Updatable
3
- enable_updates
4
-
5
- has_many :users, enable_updates: true
6
- end
@@ -1,4 +0,0 @@
1
- class Topic < ApplicationRecord
2
- include CableReady::Updatable
3
- enable_updates on: :create
4
- end
@@ -1,7 +0,0 @@
1
- class User < ApplicationRecord
2
- include CableReady::Updatable
3
- enable_updates
4
-
5
- has_many :posts, enable_updates: true
6
- belongs_to :team, optional: true, touch: true
7
- end
@@ -1,22 +0,0 @@
1
- require_relative "boot"
2
-
3
- require "rails/all"
4
-
5
- # Require the gems listed in Gemfile, including any gems
6
- # you've limited to :test, :development, or :production.
7
- Bundler.require(*Rails.groups)
8
- require "cable_ready"
9
-
10
- module Dummy
11
- class Application < Rails::Application
12
- config.load_defaults Rails::VERSION::STRING.to_f
13
-
14
- # Configuration for the application, engines, and railties goes here.
15
- #
16
- # These settings can be overridden in specific environments using the files
17
- # in config/environments, which are processed later.
18
- #
19
- # config.time_zone = "Central Time (US & Canada)"
20
- # config.eager_load_paths << Rails.root.join("extras")
21
- end
22
- end
@@ -1,5 +0,0 @@
1
- # Set up gems listed in the Gemfile.
2
- ENV['BUNDLE_GEMFILE'] ||= File.expand_path('../../../Gemfile', __dir__)
3
-
4
- require "bundler/setup" if File.exist?(ENV["BUNDLE_GEMFILE"])
5
- $LOAD_PATH.unshift File.expand_path('../../../lib', __dir__)
@@ -1,5 +0,0 @@
1
- # Load the Rails application.
2
- require_relative "application"
3
-
4
- # Initialize the Rails application.
5
- Rails.application.initialize!
@@ -1,76 +0,0 @@
1
- require "active_support/core_ext/integer/time"
2
-
3
- Rails.application.configure do
4
- # Settings specified here will take precedence over those in config/application.rb.
5
-
6
- # In the development environment your application's code is reloaded any time
7
- # it changes. This slows down response time but is perfect for development
8
- # since you don't have to restart the web server when you make code changes.
9
- config.cache_classes = false
10
-
11
- # Do not eager load code on boot.
12
- config.eager_load = false
13
-
14
- # Show full error reports.
15
- config.consider_all_requests_local = true
16
-
17
- # Enable/disable caching. By default caching is disabled.
18
- # Run rails dev:cache to toggle caching.
19
- if Rails.root.join('tmp', 'caching-dev.txt').exist?
20
- config.action_controller.perform_caching = true
21
- config.action_controller.enable_fragment_cache_logging = true
22
-
23
- config.cache_store = :memory_store
24
- config.public_file_server.headers = {
25
- 'Cache-Control' => "public, max-age=#{2.days.to_i}"
26
- }
27
- else
28
- config.action_controller.perform_caching = false
29
-
30
- config.cache_store = :null_store
31
- end
32
-
33
- # Store uploaded files on the local file system (see config/storage.yml for options).
34
- config.active_storage.service = :local
35
-
36
- # Don't care if the mailer can't send.
37
- config.action_mailer.raise_delivery_errors = false
38
-
39
- config.action_mailer.perform_caching = false
40
-
41
- # Print deprecation notices to the Rails logger.
42
- config.active_support.deprecation = :log
43
-
44
- # Raise exceptions for disallowed deprecations.
45
- config.active_support.disallowed_deprecation = :raise
46
-
47
- # Tell Active Support which deprecation messages to disallow.
48
- config.active_support.disallowed_deprecation_warnings = []
49
-
50
- # Raise an error on page load if there are pending migrations.
51
- config.active_record.migration_error = :page_load
52
-
53
- # Highlight code that triggered database queries in logs.
54
- config.active_record.verbose_query_logs = true
55
-
56
- # Debug mode disables concatenation and preprocessing of assets.
57
- # This option may cause significant delays in view rendering with a large
58
- # number of complex assets.
59
- config.assets.debug = true
60
-
61
- # Suppress logger output for asset requests.
62
- config.assets.quiet = true
63
-
64
- # Raises error for missing translations.
65
- # config.i18n.raise_on_missing_translations = true
66
-
67
- # Annotate rendered view with file names.
68
- # config.action_view.annotate_rendered_view_with_filenames = true
69
-
70
- # Use an evented file watcher to asynchronously detect changes in source code,
71
- # routes, locales, etc. This feature depends on the listen gem.
72
- # config.file_watcher = ActiveSupport::EventedFileUpdateChecker
73
-
74
- # Uncomment if you wish to allow Action Cable access from any origin.
75
- # config.action_cable.disable_request_forgery_protection = true
76
- end