Class: Hecks::Bluebook::ProjectLoader
- Inherits:
-
Object
- Object
- Hecks::Bluebook::ProjectLoader
- Defined in:
- lib/hecks/bluebook/project_loader.rb
Overview
Boots each discovered directory and feeds its declarations into the deterministic project register. Discovery and FQN registration live in their own objects so either can be used without executing domains.
Constant Summary collapse
- Entry =
ProjectRegister::Entry
- DuplicateFqn =
ProjectRegister::DuplicateFqn
- MissingRealm =
ProjectRegister::MissingRealm
- LatestMismatch =
ProjectRegister::LatestMismatch
Instance Attribute Summary collapse
-
#discovery ⇒ Object
readonly
Returns the value of attribute discovery.
-
#register ⇒ Object
readonly
Returns the value of attribute register.
-
#root ⇒ Object
readonly
Returns the value of attribute root.
Class Method Summary collapse
Instance Method Summary collapse
- #commands ⇒ Object
- #entries ⇒ Object
- #fetch(address) ⇒ Object
- #include?(address) ⇒ Boolean
-
#initialize(root, discovery: ProjectDiscovery.new(root), register: ProjectRegister.new) ⇒ ProjectLoader
constructor
A new instance of ProjectLoader.
- #load ⇒ Object
- #queries ⇒ Object
Constructor Details
#initialize(root, discovery: ProjectDiscovery.new(root), register: ProjectRegister.new) ⇒ ProjectLoader
Returns a new instance of ProjectLoader.
19 20 21 22 23 |
# File 'lib/hecks/bluebook/project_loader.rb', line 19 def initialize(root, discovery: ProjectDiscovery.new(root), register: ProjectRegister.new) @root = File.(root) @discovery = discovery @register = register end |
Instance Attribute Details
#discovery ⇒ Object (readonly)
Returns the value of attribute discovery.
15 16 17 |
# File 'lib/hecks/bluebook/project_loader.rb', line 15 def discovery @discovery end |
#register ⇒ Object (readonly)
Returns the value of attribute register.
15 16 17 |
# File 'lib/hecks/bluebook/project_loader.rb', line 15 def register @register end |
#root ⇒ Object (readonly)
Returns the value of attribute root.
15 16 17 |
# File 'lib/hecks/bluebook/project_loader.rb', line 15 def root @root end |
Class Method Details
Instance Method Details
#commands ⇒ Object
36 |
# File 'lib/hecks/bluebook/project_loader.rb', line 36 def commands = register.commands |
#entries ⇒ Object
33 |
# File 'lib/hecks/bluebook/project_loader.rb', line 33 def entries = register.entries |
#fetch(address) ⇒ Object
34 |
# File 'lib/hecks/bluebook/project_loader.rb', line 34 def fetch(address) = register.fetch(address) |
#include?(address) ⇒ Boolean
35 |
# File 'lib/hecks/bluebook/project_loader.rb', line 35 def include?(address) = register.include?(address) |
#load ⇒ Object
25 26 27 28 29 30 31 |
# File 'lib/hecks/bluebook/project_loader.rb', line 25 def load discovery.bluebook_directories.each do |directory| runtime = Runtime.boot(directory) register.register(runtime.registry.bluebooks.values, runtime.registry, runtime, directory) end self end |
#queries ⇒ Object
37 |
# File 'lib/hecks/bluebook/project_loader.rb', line 37 def queries = register.queries |