Module: Foobara::Monorepo
- Defined in:
- foobara-0.0.110/projects/monorepo/lib/foobara/monorepo.rb,
foobara-0.0.110/projects/foobara/lib/foobara/all.rb,
foobara-0.0.110/projects/monorepo/lib/foobara/monorepo/project.rb
Overview
TODO: We should rename this to Projects or something else because we need to manage this stuff for projects inside and outside of the monorepo.
Defined Under Namespace
Classes: Project
Class Attribute Summary collapse
-
.is_installed ⇒ Object
Returns the value of attribute is_installed.
Class Method Summary collapse
- .all_projects ⇒ Object
- .install! ⇒ Object
- .project(symbol, project_path: nil) ⇒ Object
- .projects(*symbols) ⇒ Object
- .reset_alls ⇒ Object
Class Attribute Details
.is_installed ⇒ Object
Returns the value of attribute is_installed.
18 19 20 |
# File 'foobara-0.0.110/projects/monorepo/lib/foobara/monorepo.rb', line 18 def is_installed @is_installed end |
Class Method Details
.all_projects ⇒ Object
20 21 22 |
# File 'foobara-0.0.110/projects/monorepo/lib/foobara/monorepo.rb', line 20 def all_projects @all_projects ||= {} end |
.install! ⇒ Object
53 54 55 56 |
# File 'foobara-0.0.110/projects/monorepo/lib/foobara/monorepo.rb', line 53 def install! self.is_installed = true all_projects.each_value(&:install!) end |
.project(symbol, project_path: nil) ⇒ Object
30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 |
# File 'foobara-0.0.110/projects/monorepo/lib/foobara/monorepo.rb', line 30 def project(symbol, project_path: nil) if all_projects.key?(symbol) # :nocov: raise ArgumentError, "Project #{symbol} already loaded" # :nocov: end project = Project.new(symbol, project_path:) project.load all_projects[symbol] = project if is_installed project.install! all_projects.each_pair do |key, existing_project| next if key == symbol existing_project.new_project_added(project) end end end |
.projects(*symbols) ⇒ Object
24 25 26 27 28 |
# File 'foobara-0.0.110/projects/monorepo/lib/foobara/monorepo.rb', line 24 def projects(*symbols) symbols.each do |symbol| project(symbol) end end |
.reset_alls ⇒ Object
58 59 60 |
# File 'foobara-0.0.110/projects/monorepo/lib/foobara/monorepo.rb', line 58 def reset_alls all_projects.each_value(&:reset_all) end |