Class: Yoda::Store::Project

Inherits:
Object
  • Object
show all
Extended by:
Forwardable
Defined in:
lib/yoda/store/project.rb,
lib/yoda/store/project/setuper.rb,
lib/yoda/store/project/dependency.rb,
lib/yoda/store/project/rbs_loader.rb,
lib/yoda/store/project/file_finder.rb

Defined Under Namespace

Classes: Dependency, FileFinder, RbsLoader, Setuper

Instance Attribute Summary collapse

Class Method Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(name:, file_tree:) ⇒ Project

Returns a new instance of Project.

Parameters:



56
57
58
59
60
# File 'lib/yoda/store/project.rb', line 56

def initialize(name:, file_tree:)
  @name = name
  @file_tree = file_tree
  register_file_tree_events
end

Instance Attribute Details

#file_treeFileTree (readonly)

Returns:



49
50
51
# File 'lib/yoda/store/project.rb', line 49

def file_tree
  @file_tree
end

#nameString (readonly)

Returns:

  • (String)


52
53
54
# File 'lib/yoda/store/project.rb', line 52

def name
  @name
end

Class Method Details

.for_path(root_path, name: nil) ⇒ Object

Parameters:

  • name (String) (defaults to: nil)
  • root_path (String, nil)


18
19
20
21
22
# File 'lib/yoda/store/project.rb', line 18

def for_path(root_path, name: nil)
  file_tree = FileTree.new(base_path: root_path)
  name ||= root_path ? File.basename(root_path) : "root"
  new(name: name, file_tree: file_tree)
end

.temporal(name: "temporal") ⇒ Object



24
25
26
# File 'lib/yoda/store/project.rb', line 24

def temporal(name: "temporal")
  new(name: name, file_tree: FileTree.new(base_path: nil))
end

Instance Method Details

#configConfig

Returns:



93
94
95
96
97
98
99
100
101
# File 'lib/yoda/store/project.rb', line 93

def config
  @config ||= begin
    if readable_config_file_path
      Config.at(readable_config_file_path)
    else
      Config.from_yaml_data('')
    end
  end
end

#dependencyDependency

Returns:



73
74
75
# File 'lib/yoda/store/project.rb', line 73

def dependency
  @dependency ||= Dependency.new(self)
end

#environmentModel::Environment

Returns:



83
84
85
# File 'lib/yoda/store/project.rb', line 83

def environment
  @environment ||= Model::Environment.from_project(self)
end

#file_finderFileFinder

Returns:



104
105
106
# File 'lib/yoda/store/project.rb', line 104

def file_finder
  @file_finder ||= FileFinder.new(self)
end

#rbs_loaderRBS::Environment

Returns:

  • (RBS::Environment)


78
79
80
# File 'lib/yoda/store/project.rb', line 78

def rbs_loader
  @rbs_loader ||= RbsLoader.new(self)
end

#registryRegistry::ProjectRegistry



68
69
70
# File 'lib/yoda/store/project.rb', line 68

def registry
  @registry ||= Registry.for_project(self)
end

#root_pathString?

Returns:

  • (String, nil)


63
64
65
# File 'lib/yoda/store/project.rb', line 63

def root_path
  file_tree.base_path
end

#setup(rebuild: false) ⇒ Array<BaseError>

Returns:



88
89
90
# File 'lib/yoda/store/project.rb', line 88

def setup(rebuild: false)
  setuper.run(rebuild: rebuild)
end