upkeep-rails 0.1.9

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 (65) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE.txt +21 -0
  3. data/README.md +311 -0
  4. data/docs/how-it-works.md +269 -0
  5. data/lib/generators/upkeep/install/install_generator.rb +127 -0
  6. data/lib/generators/upkeep/install/templates/create_upkeep_subscriptions.rb.erb +49 -0
  7. data/lib/generators/upkeep/install/templates/subscription.js +99 -0
  8. data/lib/generators/upkeep/install/templates/upkeep.rb +63 -0
  9. data/lib/upkeep/active_record_query.rb +392 -0
  10. data/lib/upkeep/capture/request.rb +150 -0
  11. data/lib/upkeep/dag/subscription_shape.rb +244 -0
  12. data/lib/upkeep/dag.rb +370 -0
  13. data/lib/upkeep/delivery/action_cable_adapter.rb +43 -0
  14. data/lib/upkeep/delivery/async_dispatcher.rb +102 -0
  15. data/lib/upkeep/delivery/broadcast_transport.rb +89 -0
  16. data/lib/upkeep/delivery/transport.rb +194 -0
  17. data/lib/upkeep/delivery/turbo_streams.rb +302 -0
  18. data/lib/upkeep/delivery.rb +7 -0
  19. data/lib/upkeep/dependencies.rb +550 -0
  20. data/lib/upkeep/herb/developer_report.rb +135 -0
  21. data/lib/upkeep/herb/manifest_cache.rb +83 -0
  22. data/lib/upkeep/herb/manifest_diff.rb +183 -0
  23. data/lib/upkeep/herb/source_instrumenter.rb +149 -0
  24. data/lib/upkeep/herb/template_manifest.rb +518 -0
  25. data/lib/upkeep/invalidation/collection_append.rb +84 -0
  26. data/lib/upkeep/invalidation/collection_member_replace.rb +78 -0
  27. data/lib/upkeep/invalidation/collection_prepend.rb +84 -0
  28. data/lib/upkeep/invalidation/collection_remove.rb +57 -0
  29. data/lib/upkeep/invalidation/planner.rb +360 -0
  30. data/lib/upkeep/invalidation.rb +7 -0
  31. data/lib/upkeep/rails/action_view_capture.rb +920 -0
  32. data/lib/upkeep/rails/activation_token.rb +55 -0
  33. data/lib/upkeep/rails/cable/channel.rb +143 -0
  34. data/lib/upkeep/rails/cable/subscriber_identity.rb +341 -0
  35. data/lib/upkeep/rails/cable.rb +4 -0
  36. data/lib/upkeep/rails/client_subscription.rb +45 -0
  37. data/lib/upkeep/rails/configuration.rb +245 -0
  38. data/lib/upkeep/rails/controller_runtime.rb +154 -0
  39. data/lib/upkeep/rails/delivery_job.rb +29 -0
  40. data/lib/upkeep/rails/install.rb +28 -0
  41. data/lib/upkeep/rails/railtie.rb +50 -0
  42. data/lib/upkeep/rails/replay.rb +197 -0
  43. data/lib/upkeep/rails/testing.rb +258 -0
  44. data/lib/upkeep/rails.rb +370 -0
  45. data/lib/upkeep/replay.rb +439 -0
  46. data/lib/upkeep/runtime.rb +1202 -0
  47. data/lib/upkeep/shared_streams.rb +72 -0
  48. data/lib/upkeep/subscriptions/active_record_store.rb +387 -0
  49. data/lib/upkeep/subscriptions/active_record_subscription_persistence.rb +407 -0
  50. data/lib/upkeep/subscriptions/active_registry.rb +87 -0
  51. data/lib/upkeep/subscriptions/async_durable_writer.rb +131 -0
  52. data/lib/upkeep/subscriptions/json_snapshot.rb +98 -0
  53. data/lib/upkeep/subscriptions/layered_reverse_index.rb +129 -0
  54. data/lib/upkeep/subscriptions/persistent_reverse_index.rb +223 -0
  55. data/lib/upkeep/subscriptions/registrar.rb +36 -0
  56. data/lib/upkeep/subscriptions/reverse_index.rb +301 -0
  57. data/lib/upkeep/subscriptions/shape.rb +116 -0
  58. data/lib/upkeep/subscriptions/store.rb +375 -0
  59. data/lib/upkeep/subscriptions.rb +7 -0
  60. data/lib/upkeep/targeting.rb +135 -0
  61. data/lib/upkeep/version.rb +5 -0
  62. data/lib/upkeep-rails.rb +3 -0
  63. data/lib/upkeep.rb +14 -0
  64. data/upkeep-rails.gemspec +54 -0
  65. metadata +308 -0
metadata ADDED
@@ -0,0 +1,308 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: upkeep-rails
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.9
5
+ platform: ruby
6
+ authors:
7
+ - Felipe dos Anjos
8
+ bindir: bin
9
+ cert_chain: []
10
+ date: 1980-01-02 00:00:00.000000000 Z
11
+ dependencies:
12
+ - !ruby/object:Gem::Dependency
13
+ name: actionview
14
+ requirement: !ruby/object:Gem::Requirement
15
+ requirements:
16
+ - - ">="
17
+ - !ruby/object:Gem::Version
18
+ version: '7.1'
19
+ - - "<"
20
+ - !ruby/object:Gem::Version
21
+ version: '9.0'
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: !ruby/object:Gem::Requirement
25
+ requirements:
26
+ - - ">="
27
+ - !ruby/object:Gem::Version
28
+ version: '7.1'
29
+ - - "<"
30
+ - !ruby/object:Gem::Version
31
+ version: '9.0'
32
+ - !ruby/object:Gem::Dependency
33
+ name: actionpack
34
+ requirement: !ruby/object:Gem::Requirement
35
+ requirements:
36
+ - - ">="
37
+ - !ruby/object:Gem::Version
38
+ version: '7.1'
39
+ - - "<"
40
+ - !ruby/object:Gem::Version
41
+ version: '9.0'
42
+ type: :runtime
43
+ prerelease: false
44
+ version_requirements: !ruby/object:Gem::Requirement
45
+ requirements:
46
+ - - ">="
47
+ - !ruby/object:Gem::Version
48
+ version: '7.1'
49
+ - - "<"
50
+ - !ruby/object:Gem::Version
51
+ version: '9.0'
52
+ - !ruby/object:Gem::Dependency
53
+ name: actioncable
54
+ requirement: !ruby/object:Gem::Requirement
55
+ requirements:
56
+ - - ">="
57
+ - !ruby/object:Gem::Version
58
+ version: '7.1'
59
+ - - "<"
60
+ - !ruby/object:Gem::Version
61
+ version: '9.0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '7.1'
69
+ - - "<"
70
+ - !ruby/object:Gem::Version
71
+ version: '9.0'
72
+ - !ruby/object:Gem::Dependency
73
+ name: activejob
74
+ requirement: !ruby/object:Gem::Requirement
75
+ requirements:
76
+ - - ">="
77
+ - !ruby/object:Gem::Version
78
+ version: '7.1'
79
+ - - "<"
80
+ - !ruby/object:Gem::Version
81
+ version: '9.0'
82
+ type: :runtime
83
+ prerelease: false
84
+ version_requirements: !ruby/object:Gem::Requirement
85
+ requirements:
86
+ - - ">="
87
+ - !ruby/object:Gem::Version
88
+ version: '7.1'
89
+ - - "<"
90
+ - !ruby/object:Gem::Version
91
+ version: '9.0'
92
+ - !ruby/object:Gem::Dependency
93
+ name: activerecord
94
+ requirement: !ruby/object:Gem::Requirement
95
+ requirements:
96
+ - - ">="
97
+ - !ruby/object:Gem::Version
98
+ version: '7.1'
99
+ - - "<"
100
+ - !ruby/object:Gem::Version
101
+ version: '9.0'
102
+ type: :runtime
103
+ prerelease: false
104
+ version_requirements: !ruby/object:Gem::Requirement
105
+ requirements:
106
+ - - ">="
107
+ - !ruby/object:Gem::Version
108
+ version: '7.1'
109
+ - - "<"
110
+ - !ruby/object:Gem::Version
111
+ version: '9.0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: activesupport
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '7.1'
119
+ - - "<"
120
+ - !ruby/object:Gem::Version
121
+ version: '9.0'
122
+ type: :runtime
123
+ prerelease: false
124
+ version_requirements: !ruby/object:Gem::Requirement
125
+ requirements:
126
+ - - ">="
127
+ - !ruby/object:Gem::Version
128
+ version: '7.1'
129
+ - - "<"
130
+ - !ruby/object:Gem::Version
131
+ version: '9.0'
132
+ - !ruby/object:Gem::Dependency
133
+ name: herb
134
+ requirement: !ruby/object:Gem::Requirement
135
+ requirements:
136
+ - - ">="
137
+ - !ruby/object:Gem::Version
138
+ version: 0.10.1
139
+ - - "<"
140
+ - !ruby/object:Gem::Version
141
+ version: '0.11'
142
+ type: :runtime
143
+ prerelease: false
144
+ version_requirements: !ruby/object:Gem::Requirement
145
+ requirements:
146
+ - - ">="
147
+ - !ruby/object:Gem::Version
148
+ version: 0.10.1
149
+ - - "<"
150
+ - !ruby/object:Gem::Version
151
+ version: '0.11'
152
+ - !ruby/object:Gem::Dependency
153
+ name: nokogiri
154
+ requirement: !ruby/object:Gem::Requirement
155
+ requirements:
156
+ - - ">="
157
+ - !ruby/object:Gem::Version
158
+ version: '1.15'
159
+ - - "<"
160
+ - !ruby/object:Gem::Version
161
+ version: '2.0'
162
+ type: :runtime
163
+ prerelease: false
164
+ version_requirements: !ruby/object:Gem::Requirement
165
+ requirements:
166
+ - - ">="
167
+ - !ruby/object:Gem::Version
168
+ version: '1.15'
169
+ - - "<"
170
+ - !ruby/object:Gem::Version
171
+ version: '2.0'
172
+ - !ruby/object:Gem::Dependency
173
+ name: railties
174
+ requirement: !ruby/object:Gem::Requirement
175
+ requirements:
176
+ - - ">="
177
+ - !ruby/object:Gem::Version
178
+ version: '7.1'
179
+ - - "<"
180
+ - !ruby/object:Gem::Version
181
+ version: '9.0'
182
+ type: :runtime
183
+ prerelease: false
184
+ version_requirements: !ruby/object:Gem::Requirement
185
+ requirements:
186
+ - - ">="
187
+ - !ruby/object:Gem::Version
188
+ version: '7.1'
189
+ - - "<"
190
+ - !ruby/object:Gem::Version
191
+ version: '9.0'
192
+ - !ruby/object:Gem::Dependency
193
+ name: turbo-rails
194
+ requirement: !ruby/object:Gem::Requirement
195
+ requirements:
196
+ - - ">="
197
+ - !ruby/object:Gem::Version
198
+ version: '2.0'
199
+ - - "<"
200
+ - !ruby/object:Gem::Version
201
+ version: '3.0'
202
+ type: :runtime
203
+ prerelease: false
204
+ version_requirements: !ruby/object:Gem::Requirement
205
+ requirements:
206
+ - - ">="
207
+ - !ruby/object:Gem::Version
208
+ version: '2.0'
209
+ - - "<"
210
+ - !ruby/object:Gem::Version
211
+ version: '3.0'
212
+ description: Upkeep records the data and identity dependencies used while Rails renders
213
+ a view, then updates subscribed frames when matching application data changes.
214
+ email:
215
+ - felipe.cavalheiro.anjos@gmail.com
216
+ executables: []
217
+ extensions: []
218
+ extra_rdoc_files: []
219
+ files:
220
+ - LICENSE.txt
221
+ - README.md
222
+ - docs/how-it-works.md
223
+ - lib/generators/upkeep/install/install_generator.rb
224
+ - lib/generators/upkeep/install/templates/create_upkeep_subscriptions.rb.erb
225
+ - lib/generators/upkeep/install/templates/subscription.js
226
+ - lib/generators/upkeep/install/templates/upkeep.rb
227
+ - lib/upkeep-rails.rb
228
+ - lib/upkeep.rb
229
+ - lib/upkeep/active_record_query.rb
230
+ - lib/upkeep/capture/request.rb
231
+ - lib/upkeep/dag.rb
232
+ - lib/upkeep/dag/subscription_shape.rb
233
+ - lib/upkeep/delivery.rb
234
+ - lib/upkeep/delivery/action_cable_adapter.rb
235
+ - lib/upkeep/delivery/async_dispatcher.rb
236
+ - lib/upkeep/delivery/broadcast_transport.rb
237
+ - lib/upkeep/delivery/transport.rb
238
+ - lib/upkeep/delivery/turbo_streams.rb
239
+ - lib/upkeep/dependencies.rb
240
+ - lib/upkeep/herb/developer_report.rb
241
+ - lib/upkeep/herb/manifest_cache.rb
242
+ - lib/upkeep/herb/manifest_diff.rb
243
+ - lib/upkeep/herb/source_instrumenter.rb
244
+ - lib/upkeep/herb/template_manifest.rb
245
+ - lib/upkeep/invalidation.rb
246
+ - lib/upkeep/invalidation/collection_append.rb
247
+ - lib/upkeep/invalidation/collection_member_replace.rb
248
+ - lib/upkeep/invalidation/collection_prepend.rb
249
+ - lib/upkeep/invalidation/collection_remove.rb
250
+ - lib/upkeep/invalidation/planner.rb
251
+ - lib/upkeep/rails.rb
252
+ - lib/upkeep/rails/action_view_capture.rb
253
+ - lib/upkeep/rails/activation_token.rb
254
+ - lib/upkeep/rails/cable.rb
255
+ - lib/upkeep/rails/cable/channel.rb
256
+ - lib/upkeep/rails/cable/subscriber_identity.rb
257
+ - lib/upkeep/rails/client_subscription.rb
258
+ - lib/upkeep/rails/configuration.rb
259
+ - lib/upkeep/rails/controller_runtime.rb
260
+ - lib/upkeep/rails/delivery_job.rb
261
+ - lib/upkeep/rails/install.rb
262
+ - lib/upkeep/rails/railtie.rb
263
+ - lib/upkeep/rails/replay.rb
264
+ - lib/upkeep/rails/testing.rb
265
+ - lib/upkeep/replay.rb
266
+ - lib/upkeep/runtime.rb
267
+ - lib/upkeep/shared_streams.rb
268
+ - lib/upkeep/subscriptions.rb
269
+ - lib/upkeep/subscriptions/active_record_store.rb
270
+ - lib/upkeep/subscriptions/active_record_subscription_persistence.rb
271
+ - lib/upkeep/subscriptions/active_registry.rb
272
+ - lib/upkeep/subscriptions/async_durable_writer.rb
273
+ - lib/upkeep/subscriptions/json_snapshot.rb
274
+ - lib/upkeep/subscriptions/layered_reverse_index.rb
275
+ - lib/upkeep/subscriptions/persistent_reverse_index.rb
276
+ - lib/upkeep/subscriptions/registrar.rb
277
+ - lib/upkeep/subscriptions/reverse_index.rb
278
+ - lib/upkeep/subscriptions/shape.rb
279
+ - lib/upkeep/subscriptions/store.rb
280
+ - lib/upkeep/targeting.rb
281
+ - lib/upkeep/version.rb
282
+ - upkeep-rails.gemspec
283
+ homepage: https://github.com/fc-anjos/upkeep-rails
284
+ licenses:
285
+ - MIT
286
+ metadata:
287
+ homepage_uri: https://github.com/fc-anjos/upkeep-rails
288
+ source_code_uri: https://github.com/fc-anjos/upkeep-rails/tree/v0.1.9
289
+ bug_tracker_uri: https://github.com/fc-anjos/upkeep-rails/issues
290
+ rubygems_mfa_required: 'true'
291
+ rdoc_options: []
292
+ require_paths:
293
+ - lib
294
+ required_ruby_version: !ruby/object:Gem::Requirement
295
+ requirements:
296
+ - - ">="
297
+ - !ruby/object:Gem::Version
298
+ version: 3.2.0
299
+ required_rubygems_version: !ruby/object:Gem::Requirement
300
+ requirements:
301
+ - - ">="
302
+ - !ruby/object:Gem::Version
303
+ version: '0'
304
+ requirements: []
305
+ rubygems_version: 3.6.9
306
+ specification_version: 4
307
+ summary: Dependency-tracked live updates for Rails views
308
+ test_files: []