Module | Rubygame::NamedResource::NamedResourceClassMethods
In: | lib/rubygame/named_resource.rb

Adds class methods when the NamedResource module is included in a class. (Here, we are assuming that the NamedResource module was included in a class called MyClass.)

### Methods

[] []= autoload basename exist? find_file

### Attributes

autoload_dirs | [RW] | An Array of paths to check for files. See find_file.

### Public Instance methods

MyClass[ name ] → instance or nil

Retrieves an instance of the class from a per-class resource table (Hash).

If no object has been saved under the given name, invoke autoload to try to load a new instance, store it in the Hash table under this name, and sets the instance‘s @name to this name.

MyClass[ name ] = instance

Stores an instance of the class in a per-class resource table (Hash) for future access. If another object is already stored with this name, the old record is lost.

May raise: TypeError, if you try to store anything

               that is not kind of this class.

MyClass.autoload( name ) → instance or nil

This method is invoked when a non-existing resource is accessed with #[]. By default, this method simply returns nil, effectively disabling autoloading.

You should override this method in your class to provide class-specific loading behavior, or leave it as the default if you don‘t need autoloading. Your method should return either an instance of the class, or nil.

NOTE: The find_file method is useful for getting the full path to a file which matches the name. That‘s what it‘s there for, so you should use it!

MyClass.basename( path ) → filename

Returns the basename for the path (i.e. the filename without the directory). Same as File.basename

MyClass.exist?( path ) → true or false

True if the given path points to a file that exists, otherwise false. Same as File.exist?

MyClass.find_file( filename ) → path or nil

Checks every directory in @autoload_dirs for a file with the given name, and returns the path (directory and name) for the first match.

If no directories have a file with that name, return nil.

[Validate]