Algorithm::Dependency::Objects - An implementation of an Object Dependency Algorithm


Algorithm-Dependency-Objects documentation  | view source Contained in the Algorithm-Dependency-Objects distribution.

Index


NAME

Top

Algorithm::Dependency::Objects - An implementation of an Object Dependency Algorithm

SYNOPSIS

Top

	use Algorithm::Dependency::Objects;

	my $o = Algorithm::Dependency::Objects->new(
		objects => \@objects,
		selected => \@selected, # objects which are already taken care of
	);

	my @needed = $o->schedule( $objects[0] );

	# need to take care of @needed for $objecs[0] to be resolved

DESCRIPTION

Top

This modules is a re-implementation of Algorithm::Dependency using only objects instead of object ids, making use of Set::Object for book-keeping.

METHODS

Top

new

Duh.

objects
selected

Returns the Set::Object representing this collection. Objects is an enumeration of all the object who we're dependo-frobnicating, and selected is those that don't need to be run.

depends
schedule
schedule_all

See Algorithm::Dependency's corresponding methods.

verify_input_set $object_set

Make sure that the dependencies of every object in the set are also in the set.

handle_missing_objects $missing_set, $input_set

Called by verify_input_set when objects are missing from the input set.

You can override this method to simply return

	$input_set->union($missing_set);

making all dependencies of the input objects implicit input objects themselves.

unknown_object $object

Called when a new object pops out of the blue in the middle of processing (it means get_deps is returning inconsistent values).

get_deps $object

Extract the dependencies out of an object. Calls depends on the object.

can_get_deps $object

Default implementation is

	$object->can("depends");

assert_can_get_deps $object_set

Croaks if can_get_deps doesn't return true for every object in the set.

SEE ALSO

Top

Adam Kennedy's excellent Algorithm::Dependency module, upon which this is based.

BUGS

Top

None that we are aware of. Of course, if you find a bug, let us know, and we will be sure to fix it.

CODE COVERAGE

Top

We use Devel::Cover to test the code coverage of our tests, below is the Devel::Cover report on this module test suite.

AUTHORS

Top

Yuval Kogman

Stevan Little

COPYRIGHT AND LICENSE

Top


Algorithm-Dependency-Objects documentation  | view source Contained in the Algorithm-Dependency-Objects distribution.