solid_objects 0.10.3 → 0.12.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.
- checksums.yaml +4 -4
- data/CHANGELOG.md +50 -0
- data/README.md +72 -16
- data/app/controllers/solid_objects/components_controller.rb +4 -4
- data/app/models/solid_objects/message.rb +1 -1
- data/app/views/solid_objects/dead_letters/index.html.erb +1 -1
- data/app/views/solid_objects/instances/show.html.erb +1 -1
- data/benchmark/support.rb +10 -10
- data/db/migrate/20260813000000_rename_message_dispatch_columns.rb +53 -0
- data/docs/architecture.md +11 -9
- data/docs/authorization.md +2 -2
- data/docs/database-schema.md +4 -4
- data/docs/development.md +1 -1
- data/docs/migrating-existing-state.md +1 -3
- data/docs/roadmap.md +1 -1
- data/lib/solid_objects/actor.rb +43 -32
- data/lib/solid_objects/actor_channel.rb +3 -3
- data/lib/solid_objects/actor_definition.rb +9 -6
- data/lib/solid_objects/actor_view.rb +1 -1
- data/lib/solid_objects/application_write_guard.rb +1 -1
- data/lib/solid_objects/client.rb +52 -52
- data/lib/solid_objects/component_registration.rb +2 -2
- data/lib/solid_objects/component_renderer.rb +1 -1
- data/lib/solid_objects/component_subscriptions.rb +21 -21
- data/lib/solid_objects/configuration.rb +42 -0
- data/lib/solid_objects/database_adapters/sqlite.rb +7 -1
- data/lib/solid_objects/dead_letter_manager.rb +4 -4
- data/lib/solid_objects/doctor.rb +8 -8
- data/lib/solid_objects/effect_executor.rb +22 -22
- data/lib/solid_objects/errors.rb +27 -27
- data/lib/solid_objects/executor.rb +40 -38
- data/lib/solid_objects/lease.rb +3 -3
- data/lib/solid_objects/mailbox.rb +34 -27
- data/lib/solid_objects/operation_dispatcher.rb +51 -0
- data/lib/solid_objects/payload_broadcast.rb +1 -1
- data/lib/solid_objects/reference.rb +60 -29
- data/lib/solid_objects/reminder_scheduler.rb +6 -6
- data/lib/solid_objects/supervisor.rb +50 -9
- data/lib/solid_objects/sync_diagnostics.rb +6 -6
- data/lib/solid_objects/turbo_stream_renderer.rb +13 -13
- data/lib/solid_objects/version.rb +1 -1
- data/lib/solid_objects.rb +1 -0
- data/sig/generated/controllers/solid_objects/components_controller.rbs +2 -2
- data/sig/generated/lib/solid_objects/actor.rbs +17 -17
- data/sig/generated/lib/solid_objects/actor_definition.rbs +4 -4
- data/sig/generated/lib/solid_objects/client.rbs +8 -8
- data/sig/generated/lib/solid_objects/component_registration.rbs +2 -2
- data/sig/generated/lib/solid_objects/component_subscriptions.rbs +8 -8
- data/sig/generated/lib/solid_objects/configuration.rbs +32 -4
- data/sig/generated/lib/solid_objects/database_adapters/sqlite.rbs +3 -0
- data/sig/generated/lib/solid_objects/effect_executor.rbs +2 -2
- data/sig/generated/lib/solid_objects/errors.rbs +18 -18
- data/sig/generated/lib/solid_objects/executor.rbs +10 -10
- data/sig/generated/lib/solid_objects/lease.rbs +2 -2
- data/sig/generated/lib/solid_objects/mailbox.rbs +8 -8
- data/sig/generated/lib/solid_objects/operation_dispatcher.rbs +35 -0
- data/sig/generated/lib/solid_objects/reference.rbs +7 -4
- data/sig/generated/lib/solid_objects/supervisor.rbs +19 -2
- data/sig/generated/lib/solid_objects/sync_diagnostics.rbs +2 -2
- data/sig/generated/lib/solid_objects/turbo_stream_renderer.rbs +8 -8
- metadata +5 -2
|
@@ -71,7 +71,7 @@ module SolidObjects
|
|
|
71
71
|
|
|
72
72
|
@actor_id: String
|
|
73
73
|
|
|
74
|
-
@
|
|
74
|
+
@operation: String
|
|
75
75
|
|
|
76
76
|
attr_reader timeout: untyped
|
|
77
77
|
|
|
@@ -79,10 +79,10 @@ module SolidObjects
|
|
|
79
79
|
|
|
80
80
|
attr_reader actor_id: untyped
|
|
81
81
|
|
|
82
|
-
attr_reader
|
|
82
|
+
attr_reader operation: untyped
|
|
83
83
|
|
|
84
|
-
# @rbs (timeout: Numeric, actor_type: String, actor_id: String,
|
|
85
|
-
def initialize: (timeout: Numeric, actor_type: String, actor_id: String,
|
|
84
|
+
# @rbs (timeout: Numeric, actor_type: String, actor_id: String, operation: String) -> void
|
|
85
|
+
def initialize: (timeout: Numeric, actor_type: String, actor_id: String, operation: String) -> void
|
|
86
86
|
end
|
|
87
87
|
|
|
88
88
|
class SyncTimeout < Error
|
|
@@ -92,7 +92,7 @@ module SolidObjects
|
|
|
92
92
|
|
|
93
93
|
@actor_id: String
|
|
94
94
|
|
|
95
|
-
@
|
|
95
|
+
@operation: String
|
|
96
96
|
|
|
97
97
|
@message_id: Integer
|
|
98
98
|
|
|
@@ -114,7 +114,7 @@ module SolidObjects
|
|
|
114
114
|
|
|
115
115
|
attr_reader actor_id: untyped
|
|
116
116
|
|
|
117
|
-
attr_reader
|
|
117
|
+
attr_reader operation: untyped
|
|
118
118
|
|
|
119
119
|
attr_reader message_id: untyped
|
|
120
120
|
|
|
@@ -130,8 +130,8 @@ module SolidObjects
|
|
|
130
130
|
|
|
131
131
|
attr_reader blocker: untyped
|
|
132
132
|
|
|
133
|
-
# @rbs (timeout: Numeric, actor_type: String, actor_id: String,
|
|
134
|
-
def initialize: (timeout: Numeric, actor_type: String, actor_id: String,
|
|
133
|
+
# @rbs (timeout: Numeric, actor_type: String, actor_id: String, operation: String, message_id: Integer, request_id: String, sequence: Integer, status: String, waiting_on: String, activation: Hash[String, untyped], blocker: Hash[String, untyped]?) -> void
|
|
134
|
+
def initialize: (timeout: Numeric, actor_type: String, actor_id: String, operation: String, message_id: Integer, request_id: String, sequence: Integer, status: String, waiting_on: String, activation: Hash[String, untyped], blocker: Hash[String, untyped]?) -> void
|
|
135
135
|
|
|
136
136
|
# @rbs () -> MessageReference
|
|
137
137
|
def message_reference: () -> MessageReference
|
|
@@ -142,16 +142,16 @@ module SolidObjects
|
|
|
142
142
|
|
|
143
143
|
@actor_id: String
|
|
144
144
|
|
|
145
|
-
@
|
|
145
|
+
@operation: String
|
|
146
146
|
|
|
147
147
|
attr_reader actor_type: untyped
|
|
148
148
|
|
|
149
149
|
attr_reader actor_id: untyped
|
|
150
150
|
|
|
151
|
-
attr_reader
|
|
151
|
+
attr_reader operation: untyped
|
|
152
152
|
|
|
153
|
-
# @rbs (actor_type: String, actor_id: String,
|
|
154
|
-
def initialize: (actor_type: String, actor_id: String,
|
|
153
|
+
# @rbs (actor_type: String, actor_id: String, operation: String) -> void
|
|
154
|
+
def initialize: (actor_type: String, actor_id: String, operation: String) -> void
|
|
155
155
|
end
|
|
156
156
|
|
|
157
157
|
class ApplicationWriteForbidden < NonRetryableError
|
|
@@ -159,21 +159,21 @@ module SolidObjects
|
|
|
159
159
|
|
|
160
160
|
@actor_id: String
|
|
161
161
|
|
|
162
|
-
@
|
|
162
|
+
@operation: String
|
|
163
163
|
|
|
164
164
|
attr_reader actor_type: untyped
|
|
165
165
|
|
|
166
166
|
attr_reader actor_id: untyped
|
|
167
167
|
|
|
168
|
-
attr_reader
|
|
168
|
+
attr_reader operation: untyped
|
|
169
169
|
|
|
170
|
-
# @rbs (actor_type: String, actor_id: String,
|
|
171
|
-
def initialize: (actor_type: String, actor_id: String,
|
|
170
|
+
# @rbs (actor_type: String, actor_id: String, operation: String) -> void
|
|
171
|
+
def initialize: (actor_type: String, actor_id: String, operation: String) -> void
|
|
172
172
|
end
|
|
173
173
|
|
|
174
174
|
class CommitActionUnavailable < NonRetryableError
|
|
175
|
-
# @rbs (actor_type: String, actor_id: String,
|
|
176
|
-
def initialize: (actor_type: String, actor_id: String,
|
|
175
|
+
# @rbs (actor_type: String, actor_id: String, operation: String) -> void
|
|
176
|
+
def initialize: (actor_type: String, actor_id: String, operation: String) -> void
|
|
177
177
|
end
|
|
178
178
|
|
|
179
179
|
class UnknownCommitAction < NonRetryableError
|
|
@@ -36,14 +36,14 @@ module SolidObjects
|
|
|
36
36
|
# @rbs (Array[Actor::CommitActionIntent]) -> void
|
|
37
37
|
def execute_commit_actions: (Array[Actor::CommitActionIntent]) -> void
|
|
38
38
|
|
|
39
|
-
# @rbs (Actor::CommitActionIntent, Proc, CommitActionContext) -> untyped
|
|
40
|
-
def execute_commit_action: (Actor::CommitActionIntent, Proc, CommitActionContext) -> untyped
|
|
39
|
+
# @rbs (intent: Actor::CommitActionIntent, handler: Proc, context: CommitActionContext) -> untyped
|
|
40
|
+
def execute_commit_action: (intent: Actor::CommitActionIntent, handler: Proc, context: CommitActionContext) -> untyped
|
|
41
41
|
|
|
42
42
|
# @rbs () -> void
|
|
43
43
|
def ensure_application_database_is_shared!: () -> void
|
|
44
44
|
|
|
45
|
-
# @rbs (Message, Instance, Array[Actor::EffectIntent]) -> Array[Effect]
|
|
46
|
-
def enqueue_effects: (Message, Instance, Array[Actor::EffectIntent]) -> Array[Effect]
|
|
45
|
+
# @rbs (message: Message, instance: Instance, intents: Array[Actor::EffectIntent]) -> Array[Effect]
|
|
46
|
+
def enqueue_effects: (message: Message, instance: Instance, intents: Array[Actor::EffectIntent]) -> Array[Effect]
|
|
47
47
|
|
|
48
48
|
# A reminder is one named alarm per actor, so scheduling a name that is
|
|
49
49
|
# already armed moves it rather than adding a second. An actor that arms a
|
|
@@ -62,11 +62,11 @@ module SolidObjects
|
|
|
62
62
|
# @rbs (Reminder, Time?) -> Hash[Symbol, untyped]?
|
|
63
63
|
def moved_reminder_payload: (Reminder, Time?) -> Hash[Symbol, untyped]?
|
|
64
64
|
|
|
65
|
-
# @rbs (Message, Instance, Array[Actor::OutboundMessageIntent]) -> Array[Effect]
|
|
66
|
-
def enqueue_actor_messages: (Message, Instance, Array[Actor::OutboundMessageIntent]) -> Array[Effect]
|
|
65
|
+
# @rbs (message: Message, instance: Instance, intents: Array[Actor::OutboundMessageIntent]) -> Array[Effect]
|
|
66
|
+
def enqueue_actor_messages: (message: Message, instance: Instance, intents: Array[Actor::OutboundMessageIntent]) -> Array[Effect]
|
|
67
67
|
|
|
68
|
-
# @rbs (Message, Instance, Hash[String, untyped], state_changed: bool) -> void
|
|
69
|
-
def enqueue_broadcasts: (Message, Instance, Hash[String, untyped], state_changed: bool) -> void
|
|
68
|
+
# @rbs (message: Message, instance: Instance, observable_changes: Hash[String, untyped], state_changed: bool) -> void
|
|
69
|
+
def enqueue_broadcasts: (message: Message, instance: Instance, observable_changes: Hash[String, untyped], state_changed: bool) -> void
|
|
70
70
|
|
|
71
71
|
# @rbs () -> bool
|
|
72
72
|
def payload_broadcasts?: () -> bool
|
|
@@ -83,8 +83,8 @@ module SolidObjects
|
|
|
83
83
|
# @rbs (Exception) -> Hash[String, untyped]
|
|
84
84
|
def serialized_error: (Exception) -> Hash[String, untyped]
|
|
85
85
|
|
|
86
|
-
# @rbs (Message, Hash[String, untyped], Time) -> DeadLetter
|
|
87
|
-
def create_dead_letter: (Message, Hash[String, untyped], Time) -> DeadLetter
|
|
86
|
+
# @rbs (message: Message, error_details: Hash[String, untyped], now: Time) -> DeadLetter
|
|
87
|
+
def create_dead_letter: (message: Message, error_details: Hash[String, untyped], now: Time) -> DeadLetter
|
|
88
88
|
|
|
89
89
|
# @rbs () -> Hash[Symbol, untyped]
|
|
90
90
|
def instrumentation_payload: () -> Hash[Symbol, untyped]
|
|
@@ -8,8 +8,8 @@ module SolidObjects
|
|
|
8
8
|
# @rbs (instance_id: Integer, owner_id: String, ?activation_token: String, ?duration: Numeric, ?database_adapter: DatabaseAdapter) -> Lease?
|
|
9
9
|
def self.acquire: (instance_id: Integer, owner_id: String, ?activation_token: String, ?duration: Numeric, ?database_adapter: DatabaseAdapter) -> Lease?
|
|
10
10
|
|
|
11
|
-
# @rbs (Instance, String, Time) -> bool
|
|
12
|
-
private def self.held_by_another_live_owner?: (Instance, String, Time) -> bool
|
|
11
|
+
# @rbs (instance: Instance, activation_token: String, now: Time) -> bool
|
|
12
|
+
private def self.held_by_another_live_owner?: (instance: Instance, activation_token: String, now: Time) -> bool
|
|
13
13
|
|
|
14
14
|
@database_adapter: DatabaseAdapter
|
|
15
15
|
|
|
@@ -9,11 +9,11 @@ module SolidObjects
|
|
|
9
9
|
# @rbs (?database_adapter: DatabaseAdapter) -> void
|
|
10
10
|
def initialize: (?database_adapter: DatabaseAdapter) -> void
|
|
11
11
|
|
|
12
|
-
# @rbs (Reference, Symbol | String, Hash[Symbol | String, untyped],
|
|
13
|
-
def enqueue: (Reference, Symbol | String, Hash[Symbol | String, untyped],
|
|
12
|
+
# @rbs (reference: Reference, operation: Symbol | String, arguments: Hash[Symbol | String, untyped], delivery_mode: String, ?available_at: Time?, idempotency_key: String?) -> MessageReference
|
|
13
|
+
def enqueue: (reference: Reference, operation: Symbol | String, arguments: Hash[Symbol | String, untyped], delivery_mode: String, idempotency_key: String?, ?available_at: Time?) -> MessageReference
|
|
14
14
|
|
|
15
|
-
# @rbs (Reference, Symbol | String, Hash[Symbol | String, untyped],
|
|
16
|
-
def enqueue_in_transaction: (Reference, Symbol | String, Hash[Symbol | String, untyped],
|
|
15
|
+
# @rbs (reference: Reference, operation: Symbol | String, arguments: Hash[Symbol | String, untyped], delivery_mode: String, ?available_at: Time?, idempotency_key: String?, ?actor_class: Class?) -> Message
|
|
16
|
+
def enqueue_in_transaction: (reference: Reference, operation: Symbol | String, arguments: Hash[Symbol | String, untyped], delivery_mode: String, idempotency_key: String?, ?available_at: Time?, ?actor_class: Class?) -> Message
|
|
17
17
|
|
|
18
18
|
# @rbs (Message) -> void
|
|
19
19
|
def announce: (Message) -> void
|
|
@@ -31,14 +31,14 @@ module SolidObjects
|
|
|
31
31
|
# @rbs (Instance, String?) -> Message?
|
|
32
32
|
def find_idempotent_message: (Instance, String?) -> Message?
|
|
33
33
|
|
|
34
|
-
# @rbs (Message, Symbol | String, String, untyped) -> Message
|
|
35
|
-
def validate_idempotent_message!: (Message, Symbol | String, String, untyped) -> Message
|
|
34
|
+
# @rbs (existing_message: Message, operation: Symbol | String, delivery_mode: String, arguments: untyped) -> Message
|
|
35
|
+
def validate_idempotent_message!: (existing_message: Message, operation: Symbol | String, delivery_mode: String, arguments: untyped) -> Message
|
|
36
36
|
|
|
37
37
|
# @rbs (Instance) -> void
|
|
38
38
|
def enforce_mailbox_limit!: (Instance) -> void
|
|
39
39
|
|
|
40
|
-
# @rbs (Instance, Reference, Symbol | String, untyped,
|
|
41
|
-
def create_message: (Instance, Reference, Symbol | String, untyped,
|
|
40
|
+
# @rbs (instance: Instance, reference: Reference, operation: Symbol | String, arguments: untyped, delivery_mode: String, available_at: Time?, idempotency_key: String?) -> Message
|
|
41
|
+
def create_message: (instance: Instance, reference: Reference, operation: Symbol | String, arguments: untyped, delivery_mode: String, available_at: Time?, idempotency_key: String?) -> Message
|
|
42
42
|
|
|
43
43
|
# @rbs (Time?, Time) -> Time
|
|
44
44
|
def normalize_availability: (Time?, Time) -> Time
|
|
@@ -0,0 +1,35 @@
|
|
|
1
|
+
# Generated from lib/solid_objects/operation_dispatcher.rb with RBS::Inline
|
|
2
|
+
|
|
3
|
+
module SolidObjects
|
|
4
|
+
class OperationDispatcher
|
|
5
|
+
@actor_type: String
|
|
6
|
+
|
|
7
|
+
@handlers: Hash[Symbol, ActorDefinition::Handler]
|
|
8
|
+
|
|
9
|
+
@dispatch: Proc
|
|
10
|
+
|
|
11
|
+
# @rbs (actor_type: String, handlers: Hash[Symbol, ActorDefinition::Handler]) { (Symbol, Hash[Symbol, untyped]) -> untyped } -> void
|
|
12
|
+
def initialize: (actor_type: String, handlers: Hash[Symbol, ActorDefinition::Handler]) { (Symbol, Hash[Symbol, untyped]) -> untyped } -> void
|
|
13
|
+
|
|
14
|
+
# @rbs (Symbol, *untyped, **untyped) -> untyped
|
|
15
|
+
def method_missing: (Symbol, *untyped, **untyped) -> untyped
|
|
16
|
+
|
|
17
|
+
# @rbs (Symbol, bool) -> bool
|
|
18
|
+
def respond_to_missing?: (Symbol, bool) -> bool
|
|
19
|
+
|
|
20
|
+
private
|
|
21
|
+
|
|
22
|
+
attr_reader actor_type: untyped
|
|
23
|
+
|
|
24
|
+
attr_reader handlers: untyped
|
|
25
|
+
|
|
26
|
+
attr_reader dispatch: untyped
|
|
27
|
+
|
|
28
|
+
RESERVED_REFERENCE_METHOD_NAMES: untyped
|
|
29
|
+
|
|
30
|
+
RESERVED_OPERATION_NAMES: untyped
|
|
31
|
+
|
|
32
|
+
# @rbs (Symbol | String) -> void
|
|
33
|
+
def self.validate_operation_name!: (Symbol | String) -> void
|
|
34
|
+
end
|
|
35
|
+
end
|
|
@@ -13,11 +13,11 @@ module SolidObjects
|
|
|
13
13
|
# @rbs (actor_type: String, actor_id: String) -> void
|
|
14
14
|
def initialize: (actor_type: String, actor_id: String) -> void
|
|
15
15
|
|
|
16
|
-
# @rbs (
|
|
17
|
-
def async: (
|
|
16
|
+
# @rbs (?available_at: Time?, ?idempotency_key: String?, ?authorization_context: untyped) -> OperationDispatcher
|
|
17
|
+
def async: (?available_at: Time?, ?idempotency_key: String?, ?authorization_context: untyped) -> OperationDispatcher
|
|
18
18
|
|
|
19
|
-
# @rbs (
|
|
20
|
-
def sync: (
|
|
19
|
+
# @rbs (?timeout: Numeric, ?idempotency_key: String?, ?authorization_context: untyped) -> OperationDispatcher
|
|
20
|
+
def sync: (?timeout: Numeric, ?idempotency_key: String?, ?authorization_context: untyped) -> OperationDispatcher
|
|
21
21
|
|
|
22
22
|
# @rbs (?authorization_context: untyped) -> bool
|
|
23
23
|
def destroy: (?authorization_context: untyped) -> bool
|
|
@@ -36,6 +36,9 @@ module SolidObjects
|
|
|
36
36
|
|
|
37
37
|
private
|
|
38
38
|
|
|
39
|
+
# @rbs (Symbol | String, Hash[Symbol, untyped], timeout: Numeric, idempotency_key: String?, authorization_context: untyped) -> untyped
|
|
40
|
+
def invoke_synchronously: (Symbol | String, Hash[Symbol, untyped], timeout: Numeric, idempotency_key: String?, authorization_context: untyped) -> untyped
|
|
41
|
+
|
|
39
42
|
# @rbs (Symbol | String) -> bool
|
|
40
43
|
def actor_message?: (Symbol | String) -> bool
|
|
41
44
|
|
|
@@ -36,6 +36,8 @@ module SolidObjects
|
|
|
36
36
|
|
|
37
37
|
attr_reader threads: untyped
|
|
38
38
|
|
|
39
|
+
attr_reader builders: untyped
|
|
40
|
+
|
|
39
41
|
# A role that raises leaves its thread dead. Without replacement the
|
|
40
42
|
# process keeps running while quietly doing less work, so the supervisor
|
|
41
43
|
# watches its threads and restarts any that stopped before shutdown.
|
|
@@ -101,8 +103,23 @@ module SolidObjects
|
|
|
101
103
|
# @rbs () -> void
|
|
102
104
|
def release_wake_up: () -> void
|
|
103
105
|
|
|
104
|
-
#
|
|
105
|
-
|
|
106
|
+
# A constructor can take a resource, and a later builder can raise. Without
|
|
107
|
+
# this, the components built first would be dropped while still holding
|
|
108
|
+
# whatever they took, and nothing would ever give it back.
|
|
109
|
+
# @rbs (Array[^() -> untyped]) -> Array[untyped]
|
|
110
|
+
def build_all: (Array[^() -> untyped]) -> Array[untyped]
|
|
111
|
+
|
|
112
|
+
# The failure that stopped the build is the one worth reporting, so a
|
|
113
|
+
# failure inside the cleanup never replaces it.
|
|
114
|
+
# @rbs (untyped) -> void
|
|
115
|
+
def stop_after_failed_build: (untyped) -> void
|
|
116
|
+
|
|
117
|
+
# Each component keeps the builder that made it, so a replacement after a
|
|
118
|
+
# crash is built the same way as the original. Components registered
|
|
119
|
+
# through the configuration run beside the built in ones, under the same
|
|
120
|
+
# supervision, restart, and shutdown timeout.
|
|
121
|
+
# @rbs (worker_count: Integer, effect_worker_count: Integer, broadcast_worker_count: Integer, reminder_scheduler_count: Integer) -> Array[^() -> untyped]
|
|
122
|
+
def component_builders: (worker_count: Integer, effect_worker_count: Integer, broadcast_worker_count: Integer, reminder_scheduler_count: Integer) -> Array[^() -> untyped]
|
|
106
123
|
|
|
107
124
|
# @rbs () -> void
|
|
108
125
|
def join_until_timeout: () -> void
|
|
@@ -19,8 +19,8 @@ module SolidObjects
|
|
|
19
19
|
# @rbs (Message) -> String
|
|
20
20
|
def message_status: (Message) -> String
|
|
21
21
|
|
|
22
|
-
# @rbs (Message, Instance, Message?) -> String
|
|
23
|
-
def waiting_reason: (Message, Instance, Message?) -> String
|
|
22
|
+
# @rbs (message: Message, instance: Instance, blocker: Message?) -> String
|
|
23
|
+
def waiting_reason: (message: Message, instance: Instance, blocker: Message?) -> String
|
|
24
24
|
|
|
25
25
|
# @rbs (ReadyMessage?) -> bool
|
|
26
26
|
def future?: (ReadyMessage?) -> bool
|
|
@@ -9,14 +9,14 @@ module SolidObjects
|
|
|
9
9
|
# @rbs (Broadcast) -> String
|
|
10
10
|
def self?.observable: (Broadcast) -> String
|
|
11
11
|
|
|
12
|
-
# @rbs (Reference, Symbol | String, untyped) -> String
|
|
13
|
-
def self?.observable_value: (Reference, Symbol | String, untyped) -> String
|
|
12
|
+
# @rbs (reference: Reference, name: Symbol | String, value: untyped) -> String
|
|
13
|
+
def self?.observable_value: (reference: Reference, name: Symbol | String, value: untyped) -> String
|
|
14
14
|
|
|
15
|
-
# @rbs (ComponentRegistration, Integer, Integer) -> String
|
|
16
|
-
def self?.component_refresh: (ComponentRegistration, Integer, Integer) -> String
|
|
15
|
+
# @rbs (registration: ComponentRegistration, instance_id: Integer, revision: Integer) -> String
|
|
16
|
+
def self?.component_refresh: (registration: ComponentRegistration, instance_id: Integer, revision: Integer) -> String
|
|
17
17
|
|
|
18
|
-
# @rbs (Array[ComponentRegistration], Integer, Integer) -> String
|
|
19
|
-
def self?.batch_refresh: (Array[ComponentRegistration], Integer, Integer) -> String
|
|
18
|
+
# @rbs (registrations: Array[ComponentRegistration], instance_id: Integer, revision: Integer) -> String
|
|
19
|
+
def self?.batch_refresh: (registrations: Array[ComponentRegistration], instance_id: Integer, revision: Integer) -> String
|
|
20
20
|
|
|
21
21
|
# @rbs (Hash[String, untyped]) -> String
|
|
22
22
|
def self?.state_payload: (Hash[String, untyped]) -> String
|
|
@@ -27,7 +27,7 @@ module SolidObjects
|
|
|
27
27
|
# @rbs (untyped) -> String
|
|
28
28
|
def self?.display_value: (untyped) -> String
|
|
29
29
|
|
|
30
|
-
# @rbs (ComponentRegistration, Integer, Integer) -> String
|
|
31
|
-
def self?.morph_component_refresh: (ComponentRegistration, Integer, Integer) -> String
|
|
30
|
+
# @rbs (registration: ComponentRegistration, instance_id: Integer, revision: Integer) -> String
|
|
31
|
+
def self?.morph_component_refresh: (registration: ComponentRegistration, instance_id: Integer, revision: Integer) -> String
|
|
32
32
|
end
|
|
33
33
|
end
|
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: solid_objects
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.
|
|
4
|
+
version: 0.12.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Lucas Carlson
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-08-
|
|
11
|
+
date: 2026-08-13 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: actioncable
|
|
@@ -312,6 +312,7 @@ files:
|
|
|
312
312
|
- config/routes.rb
|
|
313
313
|
- db/migrate/20260805000000_create_solid_objects_tables.rb
|
|
314
314
|
- db/migrate/20260806000000_add_state_revision_to_solid_objects_instances.rb
|
|
315
|
+
- db/migrate/20260813000000_rename_message_dispatch_columns.rb
|
|
315
316
|
- docs/adr/0001-postgresql-backend.md
|
|
316
317
|
- docs/adr/0002-jsonb-actor-state.md
|
|
317
318
|
- docs/adr/0003-mailbox-ordering.md
|
|
@@ -401,6 +402,7 @@ files:
|
|
|
401
402
|
- lib/solid_objects/mailbox.rb
|
|
402
403
|
- lib/solid_objects/message_pruner.rb
|
|
403
404
|
- lib/solid_objects/message_reference.rb
|
|
405
|
+
- lib/solid_objects/operation_dispatcher.rb
|
|
404
406
|
- lib/solid_objects/payload_broadcast.rb
|
|
405
407
|
- lib/solid_objects/process_pruner.rb
|
|
406
408
|
- lib/solid_objects/process_registry.rb
|
|
@@ -476,6 +478,7 @@ files:
|
|
|
476
478
|
- sig/generated/lib/solid_objects/mailbox.rbs
|
|
477
479
|
- sig/generated/lib/solid_objects/message_pruner.rbs
|
|
478
480
|
- sig/generated/lib/solid_objects/message_reference.rbs
|
|
481
|
+
- sig/generated/lib/solid_objects/operation_dispatcher.rbs
|
|
479
482
|
- sig/generated/lib/solid_objects/payload_broadcast.rbs
|
|
480
483
|
- sig/generated/lib/solid_objects/process_pruner.rbs
|
|
481
484
|
- sig/generated/lib/solid_objects/process_registry.rbs
|