Class: Railjet::Repository::Registry

Inherits:
Object
  • Object
show all
Defined in:
lib/railjet/repository/registry.rb

Instance Method Summary collapse

Constructor Details

#initializeRegistry

Returns a new instance of Registry.



7
8
9
10
# File 'lib/railjet/repository/registry.rb', line 7

def initialize
  @repositories             = {}
  @initialized_repositories = {}
end

Instance Method Details

#new(**kwargs) ⇒ Object



17
18
19
20
21
22
23
24
25
26
27
# File 'lib/railjet/repository/registry.rb', line 17

def new(**kwargs)
  self.clone.tap do |registry|
    unless kwargs.blank?
      clone_module = Module.new.tap { |m| registry.extend(m) }

      kwargs.each do |name, val|
        clone_module.send(:define_method, name) { val }
      end
    end
  end
end

#register(name, repository, **kwargs) ⇒ Object



12
13
14
15
# File 'lib/railjet/repository/registry.rb', line 12

def register(name, repository, **kwargs)
  add_to_registry(name, repository, kwargs)
  define_accessor(name)
end