The infraspective elements (Directories, Files, Checklists,
Groupings, and Controls) are really Containers. Each one just collects and
tallies the "sub-element's" Results to use as their Results. There is a
lot of duplicate code in each of the Invoke* functions, and the best way
to reduce that is to "pull it up" into an InfraspectiveContainer. The
"atomic" element is a Test, which is the part that get's executed, which
is an InfraspectiveBlock
[ ] Create a generic container object and a set of functions to manage it
[ ] Create an InfraspecContainer
[ ] Parent
[ ] Result
[ ] Metadata
[ ] Create a function that will return a container of the proper type
This should be a factory method
New-InfraspectiveContainer
Type
Metadata
[ ] Create a function that can add a Container to a Container
[ ] Create a function that can add a Block to a Container
[ ] Create a generic block object and a set of functions to manage it
[ ] Create an InfraspecBlock
[ ] Create a function that will return a block of the proper type
Abstract Elements
The infraspective elements (Directories, Files, Checklists, Groupings, and Controls) are really Containers. Each one just collects and tallies the "sub-element's"
Results
to use as theirResults
. There is a lot of duplicate code in each of theInvoke*
functions, and the best way to reduce that is to "pull it up" into anInfraspectiveContainer
. The "atomic" element is a Test, which is the part that get's executed, which is anInfraspectiveBlock
InfraspecContainer
New-InfraspectiveContainer
InfraspecBlock