Class: Yoda::Store::Registry::ProjectRegistry

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Includes:
HasServices
Defined in:
lib/yoda/store/registry/project_registry.rb

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Methods included from HasServices

included, #services

Constructor Details

#initialize(project) ⇒ ProjectRegistry

Returns a new instance of ProjectRegistry.

Parameters:



26
27
28
29
# File 'lib/yoda/store/registry/project_registry.rb', line 26

def initialize(project)
  fail TypeError, project unless project.is_a?(Project)
  @project = project
end

Instance Attribute Details

#projectObject (readonly)

Returns the value of attribute project.



16
17
18
# File 'lib/yoda/store/registry/project_registry.rb', line 16

def project
  @project
end

Class Method Details

.for_project(project) ⇒ Object

Parameters:



20
21
22
# File 'lib/yoda/store/registry/project_registry.rb', line 20

def for_project(project)
  new(project)
end

Instance Method Details

#adapterAdapters::Base

Returns:



50
51
52
53
54
# File 'lib/yoda/store/registry/project_registry.rb', line 50

def adapter
  @adapter ||= begin
    Adapters.for(project.project_registry_path)
  end
end

#librariesLibraryRegistrySet

Returns:



40
41
42
# File 'lib/yoda/store/registry/project_registry.rb', line 40

def libraries
  @libraries ||= Registry::LibraryRegistrySet.new(project: project, adapter: adapter, on_change: -> { clear_cache })
end

#local_storeLocalStore

Returns:



45
46
47
# File 'lib/yoda/store/registry/project_registry.rb', line 45

def local_store
  @local_store ||= Registry::LocalStore.new(on_change: -> { clear_cache })
end

#pretty_print(pp) ⇒ Object

Parameters:

  • pp (PP)


57
58
59
60
61
62
63
# File 'lib/yoda/store/registry/project_registry.rb', line 57

def pretty_print(pp)
  pp.object_group(self) do
    pp.breakable
    pp.text "@adapter="
    pp.pp adapter
  end
end

#root_storeObject



31
32
33
34
35
36
37
# File 'lib/yoda/store/registry/project_registry.rb', line 31

def root_store
  @root_store ||= begin
    Registry::Cache::RegistryWrapper.new(
      Registry::Composer.new(id: :root, registries: [local_store.registry, libraries.registry]),
    )
  end
end