Class: EventEngine::Definition::SchemaRegistry
- Inherits:
-
Object
- Object
- EventEngine::Definition::SchemaRegistry
show all
- Defined in:
- lib/event_engine/definition/schema_registry.rb
Defined Under Namespace
Classes: RegistryFrozenError, UnknownEventError
Instance Method Summary
collapse
Constructor Details
#initialize(event_schema = EventSchema.new) ⇒ SchemaRegistry
Returns a new instance of SchemaRegistry.
8
9
10
11
|
# File 'lib/event_engine/definition/schema_registry.rb', line 8
def initialize(event_schema = EventSchema.new)
@event_schema = event_schema
@loaded = false
end
|
Instance Method Details
#event_schema ⇒ Object
60
61
62
|
# File 'lib/event_engine/definition/schema_registry.rb', line 60
def event_schema
@event_schema
end
|
#events ⇒ Object
17
18
19
|
# File 'lib/event_engine/definition/schema_registry.rb', line 17
def events
@event_schema.events
end
|
#finalize! ⇒ Object
64
65
66
|
# File 'lib/event_engine/definition/schema_registry.rb', line 64
def finalize!
@event_schema.finalize!
end
|
#latest_for(event_name, domain: nil) ⇒ Object
56
57
58
|
# File 'lib/event_engine/definition/schema_registry.rb', line 56
def latest_for(event_name, domain: nil)
@event_schema.latest_for(event_name, domain: domain)
end
|
#load_from_schema!(schema) ⇒ Object
25
26
27
28
29
30
31
|
# File 'lib/event_engine/definition/schema_registry.rb', line 25
def load_from_schema!(schema)
raise RegistryFrozenError, "EventRegistry already loaded" if loaded?
@event_schema = schema
@loaded = true
self
end
|
#loaded? ⇒ Boolean
68
69
70
|
# File 'lib/event_engine/definition/schema_registry.rb', line 68
def loaded?
@loaded == true
end
|
#register(schema) ⇒ Object
13
14
15
|
# File 'lib/event_engine/definition/schema_registry.rb', line 13
def register(schema)
@event_schema.register(schema)
end
|
#reset! ⇒ Object
33
34
35
36
|
# File 'lib/event_engine/definition/schema_registry.rb', line 33
def reset!
@event_schema = {}
@loaded = false
end
|
#schema(event_name, version: nil, domain: nil) ⇒ Object
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
|
# File 'lib/event_engine/definition/schema_registry.rb', line 38
def schema(event_name, version: nil, domain: nil)
raise RegistryFrozenError, "EventRegistry not loaded" unless loaded?
schema =
if version
@event_schema.schema_for(event_name, version, domain: domain)
else
@event_schema.latest_for(event_name, domain: domain)
end
unless schema
raise UnknownEventError,
"Unknown #{version ? "version #{version} for " : ""}event: #{event_name}"
end
schema
end
|
#versions_for(event_name, domain: nil) ⇒ Object
21
22
23
|
# File 'lib/event_engine/definition/schema_registry.rb', line 21
def versions_for(event_name, domain: nil)
@event_schema.versions_for(event_name, domain: domain)
end
|