Class: Zodra::ApiRegistry

Inherits:
Object
  • Object
show all
Includes:
Enumerable
Defined in:
lib/zodra/api_registry.rb

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeApiRegistry

Returns a new instance of ApiRegistry.



11
12
13
# File 'lib/zodra/api_registry.rb', line 11

def initialize
  @store = {}
end

Class Method Details

.globalObject



7
8
9
# File 'lib/zodra/api_registry.rb', line 7

def self.global
  @global ||= new
end

Instance Method Details

#clear!Object



29
30
31
# File 'lib/zodra/api_registry.rb', line 29

def clear!
  @store.clear
end

#eachObject



25
26
27
# File 'lib/zodra/api_registry.rb', line 25

def each(&)
  @store.each_value(&)
end

#find(base_path) ⇒ Object



21
22
23
# File 'lib/zodra/api_registry.rb', line 21

def find(base_path)
  @store[base_path]
end

#register(base_path) ⇒ Object

Raises:



15
16
17
18
19
# File 'lib/zodra/api_registry.rb', line 15

def register(base_path)
  raise DuplicateTypeError, "API '#{base_path}' is already registered" if @store.key?(base_path)

  @store[base_path] = ApiDefinition.new(base_path:)
end