Module: SolidObjects

Extended by:
Instrumentation
Defined in:
lib/solid_objects/actor.rb,
lib/solid_objects.rb,
lib/solid_objects/cli.rb,
lib/solid_objects/lease.rb,
lib/solid_objects/state.rb,
lib/solid_objects/client.rb,
lib/solid_objects/engine.rb,
lib/solid_objects/errors.rb,
lib/solid_objects/worker.rb,
lib/solid_objects/context.rb,
lib/solid_objects/mailbox.rb,
lib/solid_objects/version.rb,
lib/solid_objects/wake_up.rb,
lib/solid_objects/executor.rb,
lib/solid_objects/reference.rb,
lib/solid_objects/activation.rb,
lib/solid_objects/actor_view.rb,
lib/solid_objects/supervisor.rb,
lib/solid_objects/stream_name.rb,
lib/solid_objects/dom_identity.rb,
lib/solid_objects/stream_token.rb,
app/models/solid_objects/effect.rb,
app/models/solid_objects/record.rb,
lib/solid_objects/actor_channel.rb,
lib/solid_objects/configuration.rb,
lib/solid_objects/lease_renewer.rb,
lib/solid_objects/serialization.rb,
app/models/solid_objects/message.rb,
app/models/solid_objects/process.rb,
lib/solid_objects/actor_registry.rb,
lib/solid_objects/actor_snapshot.rb,
lib/solid_objects/caller_process.rb,
lib/solid_objects/log_subscriber.rb,
app/models/solid_objects/instance.rb,
app/models/solid_objects/reminder.rb,
lib/solid_objects/effect_executor.rb,
lib/solid_objects/effect_registry.rb,
lib/solid_objects/instrumentation.rb,
app/models/solid_objects/broadcast.rb,
lib/solid_objects/actor_definition.rb,
lib/solid_objects/database_adapter.rb,
lib/solid_objects/process_registry.rb,
lib/solid_objects/message_reference.rb,
app/models/solid_objects/dead_letter.rb,
lib/solid_objects/activation_manager.rb,
lib/solid_objects/broadcast_executor.rb,
lib/solid_objects/reminder_scheduler.rb,
lib/solid_objects/dead_letter_manager.rb,
app/helpers/solid_objects/actor_helper.rb,
app/models/solid_objects/ready_message.rb,
lib/solid_objects/turbo_stream_renderer.rb,
app/models/solid_objects/claimed_message.rb,
lib/solid_objects/synchronous_invocation.rb,
lib/solid_objects/database_adapters/mysql.rb,
lib/solid_objects/database_adapters/sqlite.rb,
lib/generators/solid_objects/install_generator.rb,
lib/solid_objects/database_adapters/postgresql.rb,
lib/solid_objects/action_cable_broadcast_adapter.rb,
app/controllers/solid_objects/instances_controller.rb,
app/controllers/solid_objects/application_controller.rb,
app/controllers/solid_objects/dead_letters_controller.rb,
sig/generated/lib/solid_objects.rbs,
sig/generated/lib/solid_objects/cli.rbs,
sig/generated/lib/solid_objects/actor.rbs,
sig/generated/lib/solid_objects/lease.rbs,
sig/generated/lib/solid_objects/state.rbs,
sig/generated/lib/solid_objects/client.rbs,
sig/generated/lib/solid_objects/engine.rbs,
sig/generated/lib/solid_objects/errors.rbs,
sig/generated/lib/solid_objects/worker.rbs,
sig/generated/lib/solid_objects/context.rbs,
sig/generated/lib/solid_objects/mailbox.rbs,
sig/generated/lib/solid_objects/version.rbs,
sig/generated/lib/solid_objects/wake_up.rbs,
sig/generated/lib/solid_objects/executor.rbs,
sig/generated/lib/solid_objects/reference.rbs,
sig/generated/models/solid_objects/effect.rbs,
sig/generated/models/solid_objects/record.rbs,
sig/generated/lib/solid_objects/activation.rbs,
sig/generated/lib/solid_objects/actor_view.rbs,
sig/generated/lib/solid_objects/supervisor.rbs,
sig/generated/models/solid_objects/message.rbs,
sig/generated/models/solid_objects/process.rbs,
sig/generated/lib/solid_objects/stream_name.rbs,
sig/generated/models/solid_objects/instance.rbs,
sig/generated/models/solid_objects/reminder.rbs,
sig/generated/lib/solid_objects/dom_identity.rbs,
sig/generated/lib/solid_objects/stream_token.rbs,
sig/generated/models/solid_objects/broadcast.rbs,
sig/generated/lib/solid_objects/actor_channel.rbs,
sig/generated/lib/solid_objects/configuration.rbs,
sig/generated/lib/solid_objects/lease_renewer.rbs,
sig/generated/lib/solid_objects/serialization.rbs,
sig/generated/lib/solid_objects/actor_registry.rbs,
sig/generated/lib/solid_objects/actor_snapshot.rbs,
sig/generated/lib/solid_objects/caller_process.rbs,
sig/generated/lib/solid_objects/log_subscriber.rbs,
sig/generated/models/solid_objects/dead_letter.rbs,
sig/generated/lib/solid_objects/effect_executor.rbs,
sig/generated/lib/solid_objects/effect_registry.rbs,
sig/generated/lib/solid_objects/instrumentation.rbs,
sig/generated/helpers/solid_objects/actor_helper.rbs,
sig/generated/lib/solid_objects/actor_definition.rbs,
sig/generated/lib/solid_objects/database_adapter.rbs,
sig/generated/lib/solid_objects/process_registry.rbs,
sig/generated/models/solid_objects/ready_message.rbs,
sig/generated/lib/solid_objects/message_reference.rbs,
sig/generated/lib/solid_objects/activation_manager.rbs,
sig/generated/lib/solid_objects/broadcast_executor.rbs,
sig/generated/lib/solid_objects/reminder_scheduler.rbs,
sig/generated/models/solid_objects/claimed_message.rbs,
sig/generated/lib/solid_objects/dead_letter_manager.rbs,
sig/generated/lib/solid_objects/turbo_stream_renderer.rbs,
sig/generated/lib/solid_objects/synchronous_invocation.rbs,
sig/generated/lib/solid_objects/database_adapters/mysql.rbs,
sig/generated/lib/solid_objects/database_adapters/sqlite.rbs,
sig/generated/controllers/solid_objects/instances_controller.rbs,
sig/generated/lib/generators/solid_objects/install_generator.rbs,
sig/generated/lib/solid_objects/database_adapters/postgresql.rbs,
sig/generated/controllers/solid_objects/application_controller.rbs,
sig/generated/lib/solid_objects/action_cable_broadcast_adapter.rbs,
sig/generated/controllers/solid_objects/dead_letters_controller.rbs

Overview

rbs_inline: enabled

Defined Under Namespace

Modules: ActorHelper, Context, DatabaseAdapters, DomIdentity, Generators, Instrumentation, LogSubscriber, Serialization, StreamName, StreamToken, TurboStreamRenderer Classes: ActionCableBroadcastAdapter, Activation, ActivationManager, Actor, ActorCallCycle, ActorChannel, ActorDefinition, ActorDestroyed, ActorRegistry, ActorSnapshot, ActorView, ApplicationController, Broadcast, BroadcastExecutor, CLI, CallerProcess, ClaimedMessage, Client, Configuration, DatabaseAdapter, DeadLetter, DeadLetterManager, DeadLettersController, Effect, EffectContext, EffectExecutor, EffectRegistry, Engine, Error, Executor, IdempotencyConflict, Instance, InstancesController, InvalidActor, InvalidPayload, InvalidStreamToken, Lease, LeaseRenewer, LostActivation, Mailbox, MailboxFull, Message, MessageContext, MessageFailed, MessageReference, PayloadTooLarge, Process, ProcessRegistry, ReadyMessage, Record, Reference, Rejected, Reminder, ReminderScheduler, State, StateDefinition, StateMigrationError, Supervisor, SyncTimeout, SynchronousInvocation, Unauthorized, UnknownActorType, UnknownMessage, UnsupportedDatabase, WakeUp, Worker

Constant Summary collapse

VERSION =

Returns:

  • (::String)
"0.2.0"

Class Method Summary collapse

Methods included from Instrumentation

instrument

Class Method Details

.caller_processCallerProcess

RBS:

  • () -> CallerProcess

Returns:



82
83
84
85
# File 'lib/solid_objects.rb', line 82

def caller_process
  require "solid_objects/caller_process"
  @caller_process ||= CallerProcess.new
end

.clientClient

RBS:

  • () -> Client

Returns:



76
77
78
79
# File 'lib/solid_objects.rb', line 76

def client
  require "solid_objects/client"
  @client ||= Client.new
end

.configurationConfiguration

RBS:

  • () -> Configuration

Returns:



50
51
52
# File 'lib/solid_objects.rb', line 50

def configuration
  @configuration ||= Configuration.new
end

.configure {|arg0| ... } ⇒ Configuration

RBS:

  • () { (Configuration) -> void } -> Configuration

Yields:

Yield Parameters:

Yield Returns:

  • (void)

Returns:



55
56
57
58
# File 'lib/solid_objects.rb', line 55

def configure
  yield configuration
  configuration.validate!
end

.database_adapterDatabaseAdapter

RBS:

  • () -> DatabaseAdapter

Returns:



115
116
117
118
# File 'lib/solid_objects.rb', line 115

def database_adapter
  require "solid_objects/database_adapter"
  @database_adapter ||= DatabaseAdapter.for(SolidObjects::Record.connection)
end

.dead_lettersDeadLetterManager

RBS:

  • () -> DeadLetterManager

Returns:



88
89
90
# File 'lib/solid_objects.rb', line 88

def dead_letters
  @dead_letters ||= DeadLetterManager.new
end

.effect_registryEffectRegistry

RBS:

  • () -> EffectRegistry

Returns:



66
67
68
# File 'lib/solid_objects.rb', line 66

def effect_registry
  @effect_registry ||= EffectRegistry.new
end

.register_actor(type, actor_class) ⇒ Class

RBS:

  • (String, Class) -> Class

Parameters:

  • (String)
  • (Class)

Returns:

  • (Class)


98
99
100
# File 'lib/solid_objects.rb', line 98

def register_actor(type, actor_class)
  registry.register(type, actor_class)
end

.register_effect(name) {|arg0, arg1| ... } ⇒ Proc

RBS:

  • (String | Symbol) { (Hash[String, untyped], EffectContext) -> untyped } -> Proc

Parameters:

  • (String, Symbol)

Yields:

Yield Parameters:

Yield Returns:

  • (Object)

Returns:

  • (Proc)


71
72
73
# File 'lib/solid_objects.rb', line 71

def register_effect(name, &handler)
  effect_registry.register(name, handler)
end

.registryActorRegistry

RBS:

  • () -> ActorRegistry

Returns:



61
62
63
# File 'lib/solid_objects.rb', line 61

def registry
  @registry ||= ActorRegistry.new
end

.reset!void

This method returns an undefined value.

RBS:

  • () -> void



103
104
105
106
107
108
109
110
111
112
# File 'lib/solid_objects.rb', line 103

def reset!
  @configuration = Configuration.new
  @registry = ActorRegistry.new
  @client = nil
  @database_adapter = nil
  @wake_up = nil
  @caller_process = nil
  @effect_registry = EffectRegistry.new
  @dead_letters = nil
end

.table_name(name) ⇒ String

RBS:

  • (String | Symbol) -> String

Parameters:

  • (String, Symbol)

Returns:

  • (String)


93
94
95
# File 'lib/solid_objects.rb', line 93

def table_name(name)
  "#{configuration.table_name_prefix}#{name}"
end

.wake_upWakeUp

RBS:

  • () -> WakeUp

Returns:



121
122
123
# File 'lib/solid_objects.rb', line 121

def wake_up
  @wake_up ||= configuration.wake_up_adapter || WakeUp.new
end