| Subject: Env, Node, Handle
Body:
I've just added the first pass of the inter-modular interface that seems to work. There are three major classes defined:
Rubuild::Env (which is the collection of source modules),
Rubuild::Env::Node (which is information pertaining to a single source module, and which is available as self.rubuild_info in the Rubuild file), and
Rubuild::Env::Handle (which is used by nodes to access interfaces from other nodes).
Rubuild::Env is relatively global, Rubuild::Env::Node is the context of the local code (and this code is accessible through the Rubuild::Env by other modules), and Rubuild::Env::Handle is used to search through the Rubuild::Env for other nodes, and export their interfaces to the local Rubuild::Env::Node.
The accessed path of a Rubuild::Env::Node is typically the path to its file in the file-system. However, I expect that sometimes, a Handle that requests a specific path may, in fact, get an object that lives in an entirely different source path. This is part of the mechanism allowing different implementations of common interfaces not to interfere with external Rubuild code.
Next, I need to define the tool interface, for actually performing builds from the state file.
|