SYNOPSISIn a file called MyApp.pm:
class_name => 'MyApp',
is => 'UR::Namespace',
Other programs, as well as modules in the MyApp subdirectory can now put
in their code, and they will have access to all the classes and data under the MyApp tree.
DESCRIPTIONA UR namespace is the top-level object that represents your data's class structure in the most general way. After use-ing a namespace module, the program gets access to the module autoloader, which will automatically use modules on your behalf if you attempt to interact with their packages in a UR-y way, such as calling get().
Most programs will not interact with the Namespace, except to "use" its package.
my @class_metas = $namespace->get_material_classes();
Return a list of UR::Object::Type class metadata object that exist in the given Namespace. Note that this uses File::Find to find "*.pm" files under the Namespace directory and calls "UR::Object::Type->get($name)" for each package name to get the autoloader to use the package. It's likely to be pretty slow.
my @class_names = $namespace->get_material_class_names()
Return just the names of the classes produced by "get_material_classes".
my @data_sources = $namespace->get_data_sources()
Return the data source objects it finds defined under the DataSource subdirectory of the namespace.
my $path = $namespace->get_base_directory_name()
Returns the directory path where the Namespace module was loaded from.