solid_objects 0.3.0 → 0.4.1

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 (53) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +15 -0
  3. data/README.md +134 -25
  4. data/app/controllers/solid_objects/components_controller.rb +78 -0
  5. data/app/helpers/solid_objects/actor_helper.rb +11 -2
  6. data/config/routes.rb +1 -0
  7. data/db/migrate/20260806000000_add_state_revision_to_solid_objects_instances.rb +12 -0
  8. data/docs/architecture.md +61 -15
  9. data/docs/authorization.md +38 -1
  10. data/docs/correctness.md +28 -2
  11. data/docs/database-schema.md +13 -5
  12. data/docs/realtime.md +106 -12
  13. data/docs/roadmap.md +6 -5
  14. data/examples/application/README.md +5 -4
  15. data/examples/application/app/views/actors/chat_room_actor/_messages.html.erb +1 -1
  16. data/examples/application/app/views/chat_rooms/show.html.erb +2 -2
  17. data/examples/application/config/initializers/solid_objects.rb +9 -3
  18. data/lib/generators/solid_objects/templates/solid_objects.rb +3 -0
  19. data/lib/solid_objects/actor.rb +11 -0
  20. data/lib/solid_objects/actor_channel.rb +74 -6
  21. data/lib/solid_objects/actor_snapshot.rb +25 -6
  22. data/lib/solid_objects/actor_view.rb +103 -10
  23. data/lib/solid_objects/component_path_resolver.rb +27 -0
  24. data/lib/solid_objects/component_registration.rb +117 -0
  25. data/lib/solid_objects/component_renderer.rb +82 -0
  26. data/lib/solid_objects/component_subscriptions.rb +109 -0
  27. data/lib/solid_objects/component_token.rb +139 -0
  28. data/lib/solid_objects/component_view.rb +67 -0
  29. data/lib/solid_objects/configuration.rb +12 -0
  30. data/lib/solid_objects/database_adapters/sqlite.rb +15 -3
  31. data/lib/solid_objects/errors.rb +12 -0
  32. data/lib/solid_objects/executor.rb +1 -0
  33. data/lib/solid_objects/stream_token.rb +32 -13
  34. data/lib/solid_objects/turbo_stream_renderer.rb +45 -1
  35. data/lib/solid_objects/version.rb +1 -1
  36. data/lib/solid_objects.rb +7 -0
  37. data/sig/generated/controllers/solid_objects/components_controller.rbs +22 -0
  38. data/sig/generated/lib/solid_objects/actor.rbs +3 -0
  39. data/sig/generated/lib/solid_objects/actor_channel.rbs +20 -0
  40. data/sig/generated/lib/solid_objects/actor_snapshot.rbs +17 -0
  41. data/sig/generated/lib/solid_objects/actor_view.rbs +31 -2
  42. data/sig/generated/lib/solid_objects/component_path_resolver.rbs +13 -0
  43. data/sig/generated/lib/solid_objects/component_registration.rbs +51 -0
  44. data/sig/generated/lib/solid_objects/component_renderer.rbs +39 -0
  45. data/sig/generated/lib/solid_objects/component_subscriptions.rbs +40 -0
  46. data/sig/generated/lib/solid_objects/component_token.rbs +38 -0
  47. data/sig/generated/lib/solid_objects/component_view.rbs +43 -0
  48. data/sig/generated/lib/solid_objects/configuration.rbs +10 -2
  49. data/sig/generated/lib/solid_objects/database_adapters/sqlite.rbs +5 -0
  50. data/sig/generated/lib/solid_objects/errors.rbs +12 -0
  51. data/sig/generated/lib/solid_objects/stream_token.rbs +9 -4
  52. data/sig/generated/lib/solid_objects/turbo_stream_renderer.rbs +10 -0
  53. metadata +22 -3
metadata CHANGED
@@ -1,13 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: solid_objects
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lucas Carlson
8
+ autorequire:
8
9
  bindir: exe
9
10
  cert_chain: []
10
- date: 1980-01-02 00:00:00.000000000 Z
11
+ date: 2026-08-07 00:00:00.000000000 Z
11
12
  dependencies:
12
13
  - !ruby/object:Gem::Dependency
13
14
  name: actioncable
@@ -251,6 +252,7 @@ description: 'The Cloudflare Durable Objects programming model for Rails: addres
251
252
  objects with durable state, ordered mailboxes, fenced activation, per-object alarms,
252
253
  transactional effects, and reactive ERB. It runs on MySQL, PostgreSQL, and SQLite
253
254
  without requiring Redis.'
255
+ email:
254
256
  executables:
255
257
  - solid_objects
256
258
  extensions: []
@@ -261,6 +263,7 @@ files:
261
263
  - README.md
262
264
  - Rakefile
263
265
  - app/controllers/solid_objects/application_controller.rb
266
+ - app/controllers/solid_objects/components_controller.rb
264
267
  - app/controllers/solid_objects/dead_letters_controller.rb
265
268
  - app/controllers/solid_objects/instances_controller.rb
266
269
  - app/helpers/solid_objects/actor_helper.rb
@@ -290,6 +293,7 @@ files:
290
293
  - benchmark/sync_latency.rb
291
294
  - config/routes.rb
292
295
  - db/migrate/20260805000000_create_solid_objects_tables.rb
296
+ - db/migrate/20260806000000_add_state_revision_to_solid_objects_instances.rb
293
297
  - docs/adr/0001-postgresql-backend.md
294
298
  - docs/adr/0002-jsonb-actor-state.md
295
299
  - docs/adr/0003-mailbox-ordering.md
@@ -348,6 +352,12 @@ files:
348
352
  - lib/solid_objects/cli.rb
349
353
  - lib/solid_objects/client.rb
350
354
  - lib/solid_objects/commit_action_registry.rb
355
+ - lib/solid_objects/component_path_resolver.rb
356
+ - lib/solid_objects/component_registration.rb
357
+ - lib/solid_objects/component_renderer.rb
358
+ - lib/solid_objects/component_subscriptions.rb
359
+ - lib/solid_objects/component_token.rb
360
+ - lib/solid_objects/component_view.rb
351
361
  - lib/solid_objects/configuration.rb
352
362
  - lib/solid_objects/context.rb
353
363
  - lib/solid_objects/database_adapter.rb
@@ -390,6 +400,7 @@ files:
390
400
  - lib/solid_objects/worker.rb
391
401
  - lib/tasks/solid_objects_tasks.rake
392
402
  - sig/generated/controllers/solid_objects/application_controller.rbs
403
+ - sig/generated/controllers/solid_objects/components_controller.rbs
393
404
  - sig/generated/controllers/solid_objects/dead_letters_controller.rbs
394
405
  - sig/generated/controllers/solid_objects/instances_controller.rbs
395
406
  - sig/generated/helpers/solid_objects/actor_helper.rbs
@@ -410,6 +421,12 @@ files:
410
421
  - sig/generated/lib/solid_objects/cli.rbs
411
422
  - sig/generated/lib/solid_objects/client.rbs
412
423
  - sig/generated/lib/solid_objects/commit_action_registry.rbs
424
+ - sig/generated/lib/solid_objects/component_path_resolver.rbs
425
+ - sig/generated/lib/solid_objects/component_registration.rbs
426
+ - sig/generated/lib/solid_objects/component_renderer.rbs
427
+ - sig/generated/lib/solid_objects/component_subscriptions.rbs
428
+ - sig/generated/lib/solid_objects/component_token.rbs
429
+ - sig/generated/lib/solid_objects/component_view.rbs
413
430
  - sig/generated/lib/solid_objects/configuration.rbs
414
431
  - sig/generated/lib/solid_objects/context.rbs
415
432
  - sig/generated/lib/solid_objects/database_adapter.rbs
@@ -472,6 +489,7 @@ metadata:
472
489
  homepage_uri: https://solidobjects.dev
473
490
  rubygems_mfa_required: 'true'
474
491
  source_code_uri: https://github.com/cardmagic/solid_objects
492
+ post_install_message:
475
493
  rdoc_options: []
476
494
  require_paths:
477
495
  - lib
@@ -486,7 +504,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
486
504
  - !ruby/object:Gem::Version
487
505
  version: '0'
488
506
  requirements: []
489
- rubygems_version: 4.0.10
507
+ rubygems_version: 3.5.22
508
+ signing_key:
490
509
  specification_version: 4
491
510
  summary: Cloudflare Durable Objects, ported to Rails
492
511
  test_files: []