Class: EventEngine::SchemaRegistry
- Inherits:
-
Object
- Object
- EventEngine::SchemaRegistry
show all
- Defined in:
- lib/event_engine/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.
7
8
9
10
|
# File 'lib/event_engine/schema_registry.rb', line 7
def initialize(event_schema = EventSchema.new)
@event_schema = event_schema
@loaded = false
end
|
Instance Method Details
#event_schema ⇒ Object
59
60
61
|
# File 'lib/event_engine/schema_registry.rb', line 59
def event_schema
@event_schema
end
|
#events ⇒ Object
16
17
18
|
# File 'lib/event_engine/schema_registry.rb', line 16
def events
@event_schema.events
end
|
#finalize! ⇒ Object
63
64
65
|
# File 'lib/event_engine/schema_registry.rb', line 63
def finalize!
@event_schema.finalize!
end
|
#latest_for(event_name, domain: nil) ⇒ Object
55
56
57
|
# File 'lib/event_engine/schema_registry.rb', line 55
def latest_for(event_name, domain: nil)
@event_schema.latest_for(event_name, domain: domain)
end
|
#load_from_schema!(schema) ⇒ Object
24
25
26
27
28
29
30
|
# File 'lib/event_engine/schema_registry.rb', line 24
def load_from_schema!(schema)
raise RegistryFrozenError, "EventRegistry already loaded" if loaded?
@event_schema = schema
@loaded = true
self
end
|
#loaded? ⇒ Boolean
67
68
69
|
# File 'lib/event_engine/schema_registry.rb', line 67
def loaded?
@loaded == true
end
|
#register(schema) ⇒ Object
12
13
14
|
# File 'lib/event_engine/schema_registry.rb', line 12
def register(schema)
@event_schema.register(schema)
end
|
#reset! ⇒ Object
32
33
34
35
|
# File 'lib/event_engine/schema_registry.rb', line 32
def reset!
@event_schema = {}
@loaded = false
end
|
#schema(event_name, version: nil, domain: nil) ⇒ Object
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
|
# File 'lib/event_engine/schema_registry.rb', line 37
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
20
21
22
|
# File 'lib/event_engine/schema_registry.rb', line 20
def versions_for(event_name, domain: nil)
@event_schema.versions_for(event_name, domain: domain)
end
|