== OPEN OBJECT
The Open Object data type is a pure Ruby re-implementation of the Open Struct
data type which allows the recursive definition of attributes.
=== Purpose.
The sole purpose of this data type is to create a data type capable of handling
the creation and actualization of hierarchical data structures defined by using
nested Hashes instances.
=== Concept.
The Open Object data type, by being capable of create and update the values of
hierarchical attributes, is conceived as a perfect unit for in-memory data
storage.
This data type adapts dynamically to a given data object hierarchy defined by
nested Hashes in order to allow access to its attributes and their respective
dependent attributes easily.
=== Features.
The current version of this data type implements these features:
- Recursive initialization of its attributes.
- Direct read/write access to the dynamically created attributes.
- Data conversion to built-in Hash instances.
=== Limitations.
The limitations are the following:
- An instance of this data type cannot store Hash instances natively because
every instance of this built-in class will be converted into an OpenObject
instance due to implementation reasons.