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:



54
55
56
57
58
# File 'lib/yoda/store/project.rb', line 54

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

Instance Attribute Details

#file_treeFileTree (readonly)

Returns:



47
48
49
# File 'lib/yoda/store/project.rb', line 47

def file_tree
  @file_tree
end

#nameString (readonly)

Returns:

  • (String)


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

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:



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

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:



71
72
73
# File 'lib/yoda/store/project.rb', line 71

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

#environmentModel::Environment

Returns:



81
82
83
# File 'lib/yoda/store/project.rb', line 81

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

#file_finderFileFinder

Returns:



102
103
104
# File 'lib/yoda/store/project.rb', line 102

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

#rbs_loaderRBS::Environment

Returns:

  • (RBS::Environment)


76
77
78
# File 'lib/yoda/store/project.rb', line 76

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

#registryRegistry::ProjectRegistry



66
67
68
# File 'lib/yoda/store/project.rb', line 66

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

#root_pathString?

Returns:

  • (String, nil)


61
62
63
# File 'lib/yoda/store/project.rb', line 61

def root_path
  file_tree.base_path
end

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

Returns:



86
87
88
# File 'lib/yoda/store/project.rb', line 86

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