Module: Hecks::Ports::Persistence
- Defined in:
- lib/hecks/ports/persistence.rb,
lib/hecks/ports/persistence.rb,
lib/hecks/ports/persistence/plugin.rb,
lib/hecks/ports/persistence/execution.rb,
lib/hecks/ports/persistence/append_only.rb,
lib/hecks/ports/persistence/plugins/era.rb,
lib/hecks/ports/persistence/binding_policy.rb,
lib/hecks/ports/persistence/remote_runtime.rb,
lib/hecks/ports/persistence/null_saga_store.rb,
lib/hecks/ports/persistence/repository_factory.rb,
lib/hecks/ports/persistence/plugins/era/lineage.rb
Defined Under Namespace
Modules: BindingPolicy, Plugin, Plugins, RemoteRuntime, RepositoryFactory
Classes: AppendOnly, Entry, Lineage, NullSagaStore, Outcome
Constant Summary
collapse
- NAME =
"persistence"
- VERB =
"persisted_by"
- DEFAULT_ADAPTER =
"Memory"
- NULL_SAGA_STORE =
NullSagaStore.new
Class Method Summary
collapse
Class Method Details
.bind_for(registry, domain, aggregate) ⇒ Object
34
35
36
|
# File 'lib/hecks/ports/persistence.rb', line 34
def bind_for(registry, domain, aggregate)
binds_for(registry, domain, aggregate).first
end
|
.binds_for(registry, domain, aggregate) ⇒ Object
30
31
32
|
# File 'lib/hecks/ports/persistence.rb', line 30
def binds_for(registry, domain, aggregate)
[BindingPolicy.resolve(registry, domain, aggregate), []]
end
|
.each_plugin ⇒ Object
50
|
# File 'lib/hecks/ports/persistence/plugin.rb', line 50
def each_plugin(&) = Plugin.each(&)
|
.plugin?(name) ⇒ Boolean
49
|
# File 'lib/hecks/ports/persistence/plugin.rb', line 49
def plugin?(name) = Plugin.registered?(name)
|
.plugins_loaded? ⇒ Boolean
51
|
# File 'lib/hecks/ports/persistence/plugin.rb', line 51
def plugins_loaded? = Plugin.any?
|
.register_plugin(name, plugin) ⇒ Object
48
|
# File 'lib/hecks/ports/persistence/plugin.rb', line 48
def register_plugin(name, plugin) = Plugin.register(name, plugin)
|
.repository(registry, domain, aggregate) ⇒ Object
The public persistence port owns only authoritative aggregate heads.
25
26
27
28
|
# File 'lib/hecks/ports/persistence.rb', line 25
def repository(registry, domain, aggregate)
authoritative = BindingPolicy.resolve(registry, domain, aggregate)
RepositoryFactory.build(registry, domain, aggregate, authoritative)
end
|