stimulus_reflex 3.5.0.pre8 → 3.5.0.pre10

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of stimulus_reflex might be problematic. Click here for more details.

Files changed (108) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +2 -1218
  3. data/Gemfile +0 -1
  4. data/Gemfile.lock +145 -193
  5. data/README.md +48 -20
  6. data/Rakefile +0 -8
  7. data/app/assets/javascripts/stimulus_reflex.js +1174 -0
  8. data/app/assets/javascripts/stimulus_reflex.min.js +2 -0
  9. data/app/assets/javascripts/stimulus_reflex.min.js.map +1 -0
  10. data/app/assets/javascripts/stimulus_reflex.umd.js +1064 -0
  11. data/app/assets/javascripts/stimulus_reflex.umd.min.js +1065 -0
  12. data/app/assets/javascripts/stimulus_reflex.umd.min.js.map +1 -0
  13. data/app/channels/stimulus_reflex/channel.rb +28 -7
  14. data/bin/console +0 -2
  15. data/bin/standardize +2 -1
  16. data/lib/generators/stimulus_reflex/stimulus_reflex_generator.rb +72 -7
  17. data/lib/generators/stimulus_reflex/templates/app/controllers/examples_controller.rb.tt +9 -0
  18. data/lib/generators/stimulus_reflex/templates/app/javascript/channels/consumer.js.tt +6 -0
  19. data/lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.esbuild.tt +4 -0
  20. data/lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.importmap.tt +2 -0
  21. data/lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.shakapacker.tt +5 -0
  22. data/lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.vite.tt +1 -0
  23. data/lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.webpacker.tt +5 -0
  24. data/lib/generators/stimulus_reflex/templates/app/javascript/config/cable_ready.js.tt +4 -0
  25. data/lib/generators/stimulus_reflex/templates/app/javascript/config/index.js.tt +2 -0
  26. data/lib/generators/stimulus_reflex/templates/app/javascript/config/mrujs.js.tt +9 -0
  27. data/lib/generators/stimulus_reflex/templates/app/javascript/config/stimulus_reflex.js.tt +5 -0
  28. data/lib/generators/stimulus_reflex/templates/app/javascript/controllers/%file_name%_controller.js.tt +114 -74
  29. data/lib/generators/stimulus_reflex/templates/app/javascript/controllers/application.js.tt +11 -0
  30. data/lib/generators/stimulus_reflex/templates/app/javascript/controllers/application_controller.js.tt +49 -35
  31. data/lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.esbuild.tt +7 -0
  32. data/lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.importmap.tt +5 -0
  33. data/lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.shakapacker.tt +5 -0
  34. data/lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.vite.tt +5 -0
  35. data/lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.webpacker.tt +5 -0
  36. data/lib/generators/stimulus_reflex/templates/app/reflexes/%file_name%_reflex.rb.tt +38 -7
  37. data/lib/generators/stimulus_reflex/templates/app/reflexes/application_reflex.rb.tt +10 -2
  38. data/lib/generators/stimulus_reflex/templates/app/views/examples/show.html.erb.tt +207 -0
  39. data/lib/generators/stimulus_reflex/templates/config/initializers/cable_ready.rb +22 -0
  40. data/lib/generators/stimulus_reflex/templates/config/initializers/stimulus_reflex.rb +18 -13
  41. data/lib/generators/stimulus_reflex/templates/esbuild.config.mjs.tt +94 -0
  42. data/lib/install/action_cable.rb +155 -0
  43. data/lib/install/broadcaster.rb +90 -0
  44. data/lib/install/bundle.rb +56 -0
  45. data/lib/install/compression.rb +41 -0
  46. data/lib/install/config.rb +87 -0
  47. data/lib/install/development.rb +110 -0
  48. data/lib/install/esbuild.rb +114 -0
  49. data/lib/install/example.rb +22 -0
  50. data/lib/install/importmap.rb +133 -0
  51. data/lib/install/initializers.rb +25 -0
  52. data/lib/install/mrujs.rb +133 -0
  53. data/lib/install/npm_packages.rb +25 -0
  54. data/lib/install/reflexes.rb +25 -0
  55. data/lib/install/shakapacker.rb +64 -0
  56. data/lib/install/spring.rb +54 -0
  57. data/lib/install/updatable.rb +34 -0
  58. data/lib/install/vite.rb +64 -0
  59. data/lib/install/webpacker.rb +90 -0
  60. data/lib/install/yarn.rb +55 -0
  61. data/lib/stimulus_reflex/broadcasters/broadcaster.rb +15 -8
  62. data/lib/stimulus_reflex/broadcasters/page_broadcaster.rb +7 -8
  63. data/lib/stimulus_reflex/broadcasters/selector_broadcaster.rb +10 -10
  64. data/lib/stimulus_reflex/broadcasters/update.rb +3 -0
  65. data/lib/stimulus_reflex/cable_readiness.rb +29 -0
  66. data/lib/stimulus_reflex/cable_ready_channels.rb +5 -5
  67. data/lib/stimulus_reflex/callbacks.rb +17 -1
  68. data/lib/stimulus_reflex/concern_enhancer.rb +6 -4
  69. data/lib/stimulus_reflex/configuration.rb +12 -2
  70. data/lib/stimulus_reflex/dataset.rb +11 -1
  71. data/lib/stimulus_reflex/engine.rb +40 -0
  72. data/lib/stimulus_reflex/html/document.rb +59 -0
  73. data/lib/stimulus_reflex/html/document_fragment.rb +13 -0
  74. data/lib/stimulus_reflex/importmap.rb +7 -0
  75. data/lib/stimulus_reflex/installer.rb +274 -0
  76. data/lib/stimulus_reflex/open_struct_fix.rb +31 -0
  77. data/lib/stimulus_reflex/reflex.rb +32 -25
  78. data/lib/stimulus_reflex/reflex_data.rb +18 -2
  79. data/lib/stimulus_reflex/reflex_factory.rb +6 -3
  80. data/lib/stimulus_reflex/request_parameters.rb +2 -0
  81. data/lib/stimulus_reflex/utils/logger.rb +12 -0
  82. data/lib/stimulus_reflex/utils/sanity_checker.rb +8 -106
  83. data/lib/stimulus_reflex/version.rb +1 -1
  84. data/lib/stimulus_reflex.rb +4 -6
  85. data/lib/tasks/stimulus_reflex/stimulus_reflex.rake +252 -0
  86. data/package.json +73 -0
  87. data/rollup.config.mjs +86 -0
  88. data/stimulus_reflex.gemspec +60 -0
  89. data/web-test-runner.config.mjs +12 -0
  90. data/yarn.lock +5098 -0
  91. metadata +191 -78
  92. data/LATEST +0 -1
  93. data/lib/generators/USAGE +0 -14
  94. data/lib/generators/stimulus_reflex/initializer_generator.rb +0 -14
  95. data/lib/tasks/stimulus_reflex/install.rake +0 -116
  96. data/test/broadcasters/broadcaster_test.rb +0 -11
  97. data/test/broadcasters/broadcaster_test_case.rb +0 -39
  98. data/test/broadcasters/nothing_broadcaster_test.rb +0 -30
  99. data/test/broadcasters/page_broadcaster_test.rb +0 -77
  100. data/test/broadcasters/selector_broadcaster_test.rb +0 -167
  101. data/test/callbacks_test.rb +0 -652
  102. data/test/concern_enhancer_test.rb +0 -54
  103. data/test/element_test.rb +0 -254
  104. data/test/generators/stimulus_reflex_generator_test.rb +0 -58
  105. data/test/reflex_test.rb +0 -43
  106. data/test/test_helper.rb +0 -71
  107. data/test/tmp/app/reflexes/application_reflex.rb +0 -19
  108. data/test/tmp/app/reflexes/demo_reflex.rb +0 -35
metadata CHANGED
@@ -1,50 +1,65 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stimulus_reflex
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0.pre8
4
+ version: 3.5.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-21 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
- name: rack
14
+ name: actioncable
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
17
  - - ">="
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '5.2'
20
+ - - "<"
21
+ - !ruby/object:Gem::Version
22
+ version: '8'
20
23
  type: :runtime
21
24
  prerelease: false
22
25
  version_requirements: !ruby/object:Gem::Requirement
23
26
  requirements:
24
27
  - - ">="
25
28
  - !ruby/object:Gem::Version
26
- version: '0'
29
+ version: '5.2'
30
+ - - "<"
31
+ - !ruby/object:Gem::Version
32
+ version: '8'
27
33
  - !ruby/object:Gem::Dependency
28
- name: nokogiri
34
+ name: actionpack
29
35
  requirement: !ruby/object:Gem::Requirement
30
36
  requirements:
31
37
  - - ">="
32
38
  - !ruby/object:Gem::Version
33
- version: '0'
39
+ version: '5.2'
40
+ - - "<"
41
+ - !ruby/object:Gem::Version
42
+ version: '8'
34
43
  type: :runtime
35
44
  prerelease: false
36
45
  version_requirements: !ruby/object:Gem::Requirement
37
46
  requirements:
38
47
  - - ">="
39
48
  - !ruby/object:Gem::Version
40
- version: '0'
49
+ version: '5.2'
50
+ - - "<"
51
+ - !ruby/object:Gem::Version
52
+ version: '8'
41
53
  - !ruby/object:Gem::Dependency
42
- name: rails
54
+ name: actionview
43
55
  requirement: !ruby/object:Gem::Requirement
44
56
  requirements:
45
57
  - - ">="
46
58
  - !ruby/object:Gem::Version
47
59
  version: '5.2'
60
+ - - "<"
61
+ - !ruby/object:Gem::Version
62
+ version: '8'
48
63
  type: :runtime
49
64
  prerelease: false
50
65
  version_requirements: !ruby/object:Gem::Requirement
@@ -52,42 +67,85 @@ dependencies:
52
67
  - - ">="
53
68
  - !ruby/object:Gem::Version
54
69
  version: '5.2'
70
+ - - "<"
71
+ - !ruby/object:Gem::Version
72
+ version: '8'
55
73
  - !ruby/object:Gem::Dependency
56
- name: redis
74
+ name: activesupport
57
75
  requirement: !ruby/object:Gem::Requirement
58
76
  requirements:
59
77
  - - ">="
60
78
  - !ruby/object:Gem::Version
61
- version: '0'
79
+ version: '5.2'
80
+ - - "<"
81
+ - !ruby/object:Gem::Version
82
+ version: '8'
62
83
  type: :runtime
63
84
  prerelease: false
64
85
  version_requirements: !ruby/object:Gem::Requirement
65
86
  requirements:
66
87
  - - ">="
67
88
  - !ruby/object:Gem::Version
68
- version: '0'
89
+ version: '5.2'
90
+ - - "<"
91
+ - !ruby/object:Gem::Version
92
+ version: '8'
93
+ - !ruby/object:Gem::Dependency
94
+ name: railties
95
+ requirement: !ruby/object:Gem::Requirement
96
+ requirements:
97
+ - - ">="
98
+ - !ruby/object:Gem::Version
99
+ version: '5.2'
100
+ - - "<"
101
+ - !ruby/object:Gem::Version
102
+ version: '8'
103
+ type: :runtime
104
+ prerelease: false
105
+ version_requirements: !ruby/object:Gem::Requirement
106
+ requirements:
107
+ - - ">="
108
+ - !ruby/object:Gem::Version
109
+ version: '5.2'
110
+ - - "<"
111
+ - !ruby/object:Gem::Version
112
+ version: '8'
69
113
  - !ruby/object:Gem::Dependency
70
114
  name: cable_ready
71
115
  requirement: !ruby/object:Gem::Requirement
72
116
  requirements:
73
- - - '='
117
+ - - ">="
74
118
  - !ruby/object:Gem::Version
75
- version: 5.0.0.pre8
119
+ version: 5.0.0.pre10
76
120
  type: :runtime
77
121
  prerelease: false
78
122
  version_requirements: !ruby/object:Gem::Requirement
79
123
  requirements:
80
- - - '='
124
+ - - ">="
81
125
  - !ruby/object:Gem::Version
82
- version: 5.0.0.pre8
126
+ version: 5.0.0.pre10
83
127
  - !ruby/object:Gem::Dependency
84
- name: bundler
128
+ name: nokogiri
129
+ requirement: !ruby/object:Gem::Requirement
130
+ requirements:
131
+ - - "~>"
132
+ - !ruby/object:Gem::Version
133
+ version: '1.0'
134
+ type: :runtime
135
+ prerelease: false
136
+ version_requirements: !ruby/object:Gem::Requirement
137
+ requirements:
138
+ - - "~>"
139
+ - !ruby/object:Gem::Version
140
+ version: '1.0'
141
+ - !ruby/object:Gem::Dependency
142
+ name: rack
85
143
  requirement: !ruby/object:Gem::Requirement
86
144
  requirements:
87
145
  - - "~>"
88
146
  - !ruby/object:Gem::Version
89
147
  version: '2.0'
90
- type: :development
148
+ type: :runtime
91
149
  prerelease: false
92
150
  version_requirements: !ruby/object:Gem::Requirement
93
151
  requirements:
@@ -95,90 +153,116 @@ dependencies:
95
153
  - !ruby/object:Gem::Version
96
154
  version: '2.0'
97
155
  - !ruby/object:Gem::Dependency
98
- name: github_changelog_generator
156
+ name: redis
99
157
  requirement: !ruby/object:Gem::Requirement
100
158
  requirements:
101
159
  - - ">="
102
160
  - !ruby/object:Gem::Version
103
- version: '0'
104
- type: :development
161
+ version: '4.0'
162
+ - - "<"
163
+ - !ruby/object:Gem::Version
164
+ version: '6.0'
165
+ type: :runtime
105
166
  prerelease: false
106
167
  version_requirements: !ruby/object:Gem::Requirement
107
168
  requirements:
108
169
  - - ">="
109
170
  - !ruby/object:Gem::Version
110
- version: '0'
171
+ version: '4.0'
172
+ - - "<"
173
+ - !ruby/object:Gem::Version
174
+ version: '6.0'
111
175
  - !ruby/object:Gem::Dependency
112
- name: mocha
176
+ name: bundler
113
177
  requirement: !ruby/object:Gem::Requirement
114
178
  requirements:
115
- - - ">="
179
+ - - "~>"
116
180
  - !ruby/object:Gem::Version
117
- version: '0'
181
+ version: '2.0'
118
182
  type: :development
119
183
  prerelease: false
120
184
  version_requirements: !ruby/object:Gem::Requirement
121
185
  requirements:
122
- - - ">="
186
+ - - "~>"
123
187
  - !ruby/object:Gem::Version
124
- version: '0'
188
+ version: '2.0'
125
189
  - !ruby/object:Gem::Dependency
126
- name: pry
190
+ name: magic_frozen_string_literal
127
191
  requirement: !ruby/object:Gem::Requirement
128
192
  requirements:
129
- - - ">="
193
+ - - "~>"
130
194
  - !ruby/object:Gem::Version
131
- version: '0'
195
+ version: '1.2'
132
196
  type: :development
133
197
  prerelease: false
134
198
  version_requirements: !ruby/object:Gem::Requirement
135
199
  requirements:
136
- - - ">="
200
+ - - "~>"
137
201
  - !ruby/object:Gem::Version
138
- version: '0'
202
+ version: '1.2'
139
203
  - !ruby/object:Gem::Dependency
140
- name: pry-nav
204
+ name: mocha
205
+ requirement: !ruby/object:Gem::Requirement
206
+ requirements:
207
+ - - "~>"
208
+ - !ruby/object:Gem::Version
209
+ version: '1.13'
210
+ type: :development
211
+ prerelease: false
212
+ version_requirements: !ruby/object:Gem::Requirement
213
+ requirements:
214
+ - - "~>"
215
+ - !ruby/object:Gem::Version
216
+ version: '1.13'
217
+ - !ruby/object:Gem::Dependency
218
+ name: rails
141
219
  requirement: !ruby/object:Gem::Requirement
142
220
  requirements:
143
221
  - - ">="
144
222
  - !ruby/object:Gem::Version
145
- version: '0'
223
+ version: '5.2'
224
+ - - "<"
225
+ - !ruby/object:Gem::Version
226
+ version: '8'
146
227
  type: :development
147
228
  prerelease: false
148
229
  version_requirements: !ruby/object:Gem::Requirement
149
230
  requirements:
150
231
  - - ">="
151
232
  - !ruby/object:Gem::Version
152
- version: '0'
233
+ version: '5.2'
234
+ - - "<"
235
+ - !ruby/object:Gem::Version
236
+ version: '8'
153
237
  - !ruby/object:Gem::Dependency
154
238
  name: rake
155
239
  requirement: !ruby/object:Gem::Requirement
156
240
  requirements:
157
- - - ">="
241
+ - - "~>"
158
242
  - !ruby/object:Gem::Version
159
- version: '0'
243
+ version: '13.0'
160
244
  type: :development
161
245
  prerelease: false
162
246
  version_requirements: !ruby/object:Gem::Requirement
163
247
  requirements:
164
- - - ">="
248
+ - - "~>"
165
249
  - !ruby/object:Gem::Version
166
- version: '0'
250
+ version: '13.0'
167
251
  - !ruby/object:Gem::Dependency
168
- name: standardrb
252
+ name: standard
169
253
  requirement: !ruby/object:Gem::Requirement
170
254
  requirements:
171
255
  - - "~>"
172
256
  - !ruby/object:Gem::Version
173
- version: '1.0'
257
+ version: '1.24'
174
258
  type: :development
175
259
  prerelease: false
176
260
  version_requirements: !ruby/object:Gem::Requirement
177
261
  requirements:
178
262
  - - "~>"
179
263
  - !ruby/object:Gem::Version
180
- version: '1.0'
181
- description:
264
+ version: '1.24'
265
+ description:
182
266
  email:
183
267
  - natehop@gmail.com
184
268
  executables: []
@@ -189,36 +273,85 @@ files:
189
273
  - CODE_OF_CONDUCT.md
190
274
  - Gemfile
191
275
  - Gemfile.lock
192
- - LATEST
193
276
  - LICENSE.txt
194
277
  - README.md
195
278
  - Rakefile
279
+ - app/assets/javascripts/stimulus_reflex.js
280
+ - app/assets/javascripts/stimulus_reflex.min.js
281
+ - app/assets/javascripts/stimulus_reflex.min.js.map
282
+ - app/assets/javascripts/stimulus_reflex.umd.js
283
+ - app/assets/javascripts/stimulus_reflex.umd.min.js
284
+ - app/assets/javascripts/stimulus_reflex.umd.min.js.map
196
285
  - app/channels/stimulus_reflex/channel.rb
197
286
  - bin/console
198
287
  - bin/loc
199
288
  - bin/rake
200
289
  - bin/setup
201
290
  - bin/standardize
202
- - lib/generators/USAGE
203
- - lib/generators/stimulus_reflex/initializer_generator.rb
204
291
  - lib/generators/stimulus_reflex/stimulus_reflex_generator.rb
292
+ - lib/generators/stimulus_reflex/templates/app/controllers/examples_controller.rb.tt
293
+ - lib/generators/stimulus_reflex/templates/app/javascript/channels/consumer.js.tt
294
+ - lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.esbuild.tt
295
+ - lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.importmap.tt
296
+ - lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.shakapacker.tt
297
+ - lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.vite.tt
298
+ - lib/generators/stimulus_reflex/templates/app/javascript/channels/index.js.webpacker.tt
299
+ - lib/generators/stimulus_reflex/templates/app/javascript/config/cable_ready.js.tt
300
+ - lib/generators/stimulus_reflex/templates/app/javascript/config/index.js.tt
301
+ - lib/generators/stimulus_reflex/templates/app/javascript/config/mrujs.js.tt
302
+ - lib/generators/stimulus_reflex/templates/app/javascript/config/stimulus_reflex.js.tt
205
303
  - lib/generators/stimulus_reflex/templates/app/javascript/controllers/%file_name%_controller.js.tt
304
+ - lib/generators/stimulus_reflex/templates/app/javascript/controllers/application.js.tt
206
305
  - lib/generators/stimulus_reflex/templates/app/javascript/controllers/application_controller.js.tt
306
+ - lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.esbuild.tt
307
+ - lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.importmap.tt
308
+ - lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.shakapacker.tt
309
+ - lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.vite.tt
310
+ - lib/generators/stimulus_reflex/templates/app/javascript/controllers/index.js.webpacker.tt
207
311
  - lib/generators/stimulus_reflex/templates/app/reflexes/%file_name%_reflex.rb.tt
208
312
  - lib/generators/stimulus_reflex/templates/app/reflexes/application_reflex.rb.tt
313
+ - lib/generators/stimulus_reflex/templates/app/views/examples/show.html.erb.tt
314
+ - lib/generators/stimulus_reflex/templates/config/initializers/cable_ready.rb
209
315
  - lib/generators/stimulus_reflex/templates/config/initializers/stimulus_reflex.rb
316
+ - lib/generators/stimulus_reflex/templates/esbuild.config.mjs.tt
317
+ - lib/install/action_cable.rb
318
+ - lib/install/broadcaster.rb
319
+ - lib/install/bundle.rb
320
+ - lib/install/compression.rb
321
+ - lib/install/config.rb
322
+ - lib/install/development.rb
323
+ - lib/install/esbuild.rb
324
+ - lib/install/example.rb
325
+ - lib/install/importmap.rb
326
+ - lib/install/initializers.rb
327
+ - lib/install/mrujs.rb
328
+ - lib/install/npm_packages.rb
329
+ - lib/install/reflexes.rb
330
+ - lib/install/shakapacker.rb
331
+ - lib/install/spring.rb
332
+ - lib/install/updatable.rb
333
+ - lib/install/vite.rb
334
+ - lib/install/webpacker.rb
335
+ - lib/install/yarn.rb
210
336
  - lib/stimulus_reflex.rb
211
337
  - lib/stimulus_reflex/broadcasters/broadcaster.rb
212
338
  - lib/stimulus_reflex/broadcasters/nothing_broadcaster.rb
213
339
  - lib/stimulus_reflex/broadcasters/page_broadcaster.rb
214
340
  - lib/stimulus_reflex/broadcasters/selector_broadcaster.rb
215
341
  - lib/stimulus_reflex/broadcasters/update.rb
342
+ - lib/stimulus_reflex/cable_readiness.rb
216
343
  - lib/stimulus_reflex/cable_ready_channels.rb
217
344
  - lib/stimulus_reflex/callbacks.rb
218
345
  - lib/stimulus_reflex/concern_enhancer.rb
219
346
  - lib/stimulus_reflex/configuration.rb
220
347
  - lib/stimulus_reflex/dataset.rb
221
348
  - lib/stimulus_reflex/element.rb
349
+ - lib/stimulus_reflex/engine.rb
350
+ - lib/stimulus_reflex/html/document.rb
351
+ - lib/stimulus_reflex/html/document_fragment.rb
352
+ - lib/stimulus_reflex/importmap.rb
353
+ - lib/stimulus_reflex/installer.rb
354
+ - lib/stimulus_reflex/open_struct_fix.rb
222
355
  - lib/stimulus_reflex/policies/reflex_invocation_policy.rb
223
356
  - lib/stimulus_reflex/reflex.rb
224
357
  - lib/stimulus_reflex/reflex_data.rb
@@ -229,20 +362,12 @@ files:
229
362
  - lib/stimulus_reflex/utils/logger.rb
230
363
  - lib/stimulus_reflex/utils/sanity_checker.rb
231
364
  - lib/stimulus_reflex/version.rb
232
- - lib/tasks/stimulus_reflex/install.rake
233
- - test/broadcasters/broadcaster_test.rb
234
- - test/broadcasters/broadcaster_test_case.rb
235
- - test/broadcasters/nothing_broadcaster_test.rb
236
- - test/broadcasters/page_broadcaster_test.rb
237
- - test/broadcasters/selector_broadcaster_test.rb
238
- - test/callbacks_test.rb
239
- - test/concern_enhancer_test.rb
240
- - test/element_test.rb
241
- - test/generators/stimulus_reflex_generator_test.rb
242
- - test/reflex_test.rb
243
- - test/test_helper.rb
244
- - test/tmp/app/reflexes/application_reflex.rb
245
- - test/tmp/app/reflexes/demo_reflex.rb
365
+ - lib/tasks/stimulus_reflex/stimulus_reflex.rake
366
+ - package.json
367
+ - rollup.config.mjs
368
+ - stimulus_reflex.gemspec
369
+ - web-test-runner.config.mjs
370
+ - yarn.lock
246
371
  homepage: https://github.com/stimulusreflex/stimulus_reflex
247
372
  licenses:
248
373
  - MIT
@@ -268,28 +393,16 @@ required_ruby_version: !ruby/object:Gem::Requirement
268
393
  requirements:
269
394
  - - ">="
270
395
  - !ruby/object:Gem::Version
271
- version: '0'
396
+ version: 2.7.0
272
397
  required_rubygems_version: !ruby/object:Gem::Requirement
273
398
  requirements:
274
399
  - - ">"
275
400
  - !ruby/object:Gem::Version
276
401
  version: 1.3.1
277
402
  requirements: []
278
- rubygems_version: 3.1.6
279
- signing_key:
403
+ rubygems_version: 3.4.1
404
+ signing_key:
280
405
  specification_version: 4
281
406
  summary: Build reactive applications with the Rails tooling you already know and love.
282
- test_files:
283
- - test/generators/stimulus_reflex_generator_test.rb
284
- - test/element_test.rb
285
- - test/broadcasters/page_broadcaster_test.rb
286
- - test/broadcasters/broadcaster_test_case.rb
287
- - test/broadcasters/broadcaster_test.rb
288
- - test/broadcasters/selector_broadcaster_test.rb
289
- - test/broadcasters/nothing_broadcaster_test.rb
290
- - test/reflex_test.rb
291
- - test/test_helper.rb
292
- - test/callbacks_test.rb
293
- - test/tmp/app/reflexes/demo_reflex.rb
294
- - test/tmp/app/reflexes/application_reflex.rb
295
- - test/concern_enhancer_test.rb
407
+ test_files: []
408
+ ...
data/LATEST DELETED
@@ -1 +0,0 @@
1
- 3.4.1
data/lib/generators/USAGE DELETED
@@ -1,14 +0,0 @@
1
- Description:
2
- Generate boilerplate files to help get you up and running with StimulusReflex
3
-
4
- Example:
5
- rails generate stimulus_reflex User update do_stuff [options]
6
-
7
- This will create, but not overwrite the following files:
8
-
9
- app/javascript/controllers/application_controller.js
10
- app/javascript/controllers/user_controller.js
11
- app/reflexes/application_reflex.rb
12
- app/reflexes/user_reflex.rb
13
-
14
- Don't forget to setup the application: https://docs.stimulusreflex.com/hello-world/setup
@@ -1,14 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "rails/generators"
4
-
5
- module StimulusReflex
6
- class InitializerGenerator < Rails::Generators::Base
7
- desc "Creates a StimulusReflex initializer in config/initializers"
8
- source_root File.expand_path("templates", __dir__)
9
-
10
- def copy_initializer_file
11
- copy_file "config/initializers/stimulus_reflex.rb"
12
- end
13
- end
14
- end
@@ -1,116 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require "fileutils"
4
- require "stimulus_reflex/version"
5
-
6
- namespace :stimulus_reflex do
7
- desc "✨ Install StimulusReflex in this application"
8
- task install: :environment do
9
- system "rails dev:cache" unless Rails.root.join("tmp", "caching-dev.txt").exist?
10
- gem_version = StimulusReflex::VERSION.gsub(".pre", "-pre")
11
- system "yarn add stimulus_reflex@#{gem_version}"
12
- system "bundle exec rails webpacker:install:stimulus"
13
- main_folder = defined?(Webpacker) ? Webpacker.config.source_path.to_s.gsub("#{Rails.root}/", "") : "app/javascript"
14
-
15
- FileUtils.mkdir_p Rails.root.join("#{main_folder}/controllers"), verbose: true
16
- FileUtils.mkdir_p Rails.root.join("app/reflexes"), verbose: true
17
-
18
- filepath = [
19
- "#{main_folder}/controllers/index.js",
20
- "#{main_folder}/controllers/index.ts",
21
- "#{main_folder}/packs/application.js",
22
- "#{main_folder}/packs/application.ts"
23
- ]
24
- .select { |path| File.exist?(path) }
25
- .map { |path| Rails.root.join(path) }
26
- .first
27
-
28
- puts "✨ Updating #{filepath}"
29
- lines = File.readlines(filepath)
30
-
31
- unless lines.find { |line| line.start_with?("import StimulusReflex") }
32
- matches = lines.select { |line| line =~ /\A(require|import)/ }
33
- lines.insert lines.index(matches.last).to_i + 1, "import StimulusReflex from 'stimulus_reflex'\n"
34
- end
35
-
36
- unless lines.find { |line| line.start_with?("import consumer") }
37
- matches = lines.select { |line| line =~ /\A(require|import)/ }
38
- lines.insert lines.index(matches.last).to_i + 1, "import consumer from '../channels/consumer'\n"
39
- end
40
-
41
- unless lines.find { |line| line.start_with?("import controller") }
42
- matches = lines.select { |line| line =~ /\A(require|import)/ }
43
- lines.insert lines.index(matches.last).to_i + 1, "import controller from '../controllers/application_controller'\n"
44
- end
45
-
46
- initialize_line = lines.find { |line| line.start_with?("StimulusReflex.initialize") }
47
- lines << "application.consumer = consumer\n"
48
- lines << "StimulusReflex.initialize(application, { controller, isolate: true })\n" unless initialize_line
49
- lines << "StimulusReflex.debug = process.env.RAILS_ENV === 'development'\n" unless initialize_line
50
- File.write(filepath, lines.join)
51
-
52
- puts
53
- puts "✨ Updating config/environments/development.rb"
54
- filepath = Rails.root.join("config/environments/development.rb")
55
- lines = File.readlines(filepath)
56
- unless lines.find { |line| line.include?("config.session_store") }
57
- matches = lines.select { |line| line =~ /\A(Rails.application.configure do)/ }
58
- lines.insert lines.index(matches.last).to_i + 1, " config.session_store :cache_store\n\n"
59
- puts
60
- puts "✨ Using :cache_store for session storage. We recommend switching to Redis for cache and session storage."
61
- puts
62
- puts "https://docs.stimulusreflex.com/appendices/deployment#use-redis-as-your-cache-store"
63
- File.write(filepath, lines.join)
64
- end
65
-
66
- if defined?(ActionMailer)
67
- lines = File.readlines(filepath)
68
- unless lines.find { |line| line.include?("config.action_mailer.default_url_options") }
69
- matches = lines.select { |line| line =~ /\A(Rails.application.configure do)/ }
70
- lines.insert lines.index(matches.last).to_i + 1, " config.action_mailer.default_url_options = {host: \"localhost\", port: 3000}\n\n"
71
- File.write(filepath, lines.join)
72
- end
73
- end
74
-
75
- lines = File.readlines(filepath)
76
- unless lines.find { |line| line.include?("config.action_controller.default_url_options") }
77
- matches = lines.select { |line| line =~ /\A(Rails.application.configure do)/ }
78
- lines.insert lines.index(matches.last).to_i + 1, " config.action_controller.default_url_options = {host: \"localhost\", port: 3000}\n"
79
- File.write(filepath, lines.join)
80
- end
81
-
82
- puts
83
- puts "✨ Updating config/cable.yml to use Redis in development"
84
- filepath = Rails.root.join("config/cable.yml")
85
- lines = File.readlines(filepath)
86
- if lines[1].include?("adapter: async")
87
- lines.delete_at 1
88
- lines.insert 1, " adapter: redis\n"
89
- lines.insert 2, " url: <%= ENV.fetch(\"REDIS_URL\") { \"redis://localhost:6379/1\" } %>\n"
90
- lines.insert 3, " channel_prefix: " + File.basename(Rails.root.to_s).tr("\\", "").tr("-. ", "_").underscore + "_development\n"
91
- File.write(filepath, lines.join)
92
- end
93
-
94
- puts
95
- puts "✨ Generating default StimulusReflex and CableReady configuration files"
96
- puts
97
- system "bundle exec rails generate stimulus_reflex:initializer"
98
- system "bundle exec rails generate cable_ready:initializer"
99
- system "bundle exec rails generate cable_ready:helpers"
100
-
101
- puts
102
- puts "✨ Generating ApplicationReflex class and Stimulus controllers, plus an example Reflex class and controller"
103
- puts
104
- system "bundle exec rails generate stimulus_reflex example"
105
-
106
- puts
107
- puts "🎉 StimulusReflex and CableReady have been successfully installed! 🎉"
108
- puts
109
- puts "https://docs.stimulusreflex.com/hello-world/quickstart"
110
- puts
111
- puts "😊 The fastest way to get support is to say hello on Discord:"
112
- puts
113
- puts "https://discord.gg/stimulus-reflex"
114
- puts
115
- end
116
- end
@@ -1,11 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "broadcaster_test_case"
4
-
5
- class StimulusReflex::BroadcasterTest < StimulusReflex::BroadcasterTestCase
6
- test "raises a NotImplementedError if called directly" do
7
- broadcaster = StimulusReflex::Broadcaster.new(@reflex)
8
-
9
- assert_raises(NotImplementedError) { broadcaster.broadcast }
10
- end
11
- end
@@ -1,39 +0,0 @@
1
- # frozen_string_literal: true
2
-
3
- require_relative "../test_helper"
4
-
5
- class StimulusReflex::BroadcasterTestCase < ActionCable::Channel::TestCase
6
- tests StimulusReflex::Channel
7
-
8
- def assert_broadcast_on(stream, data, &block)
9
- serialized_msg = ActiveSupport::JSON.decode(ActiveSupport::JSON.encode(data))
10
-
11
- new_messages = broadcasts(stream)
12
- if block
13
- old_messages = new_messages
14
- clear_messages(stream)
15
-
16
- yield
17
- new_messages = broadcasts(stream)
18
- clear_messages(stream)
19
-
20
- (old_messages + new_messages).each { |m| pubsub_adapter.broadcast(stream, m) }
21
- end
22
-
23
- message = new_messages.find { |msg| ActiveSupport::JSON.decode(msg) == serialized_msg }
24
-
25
- unless message
26
- puts "\n\n#{ActiveSupport::JSON.decode(new_messages.first)}\n#{data}\n\n"
27
- end
28
-
29
- assert message, "No messages sent with #{data} to #{stream}"
30
- end
31
-
32
- setup do
33
- stub_connection(session_id: SecureRandom.uuid)
34
- def connection.env
35
- @env ||= {}
36
- end
37
- @reflex = StimulusReflex::Reflex.new(subscribe, url: "https://test.stimulusreflex.com", client_attributes: {reflex_id: "666"})
38
- end
39
- end