Scoped object oriented automatic cleanup
Perl6
Switch branches/tags
Nothing to show
Permalink
Failed to load latest commit information.
examples
lib
t
.gitignore
.travis.yml
LICENSE
META6.json
README.md
appveyor.yml

README.md

Clean

Build Status Build status

Provides a routine clean that takes an object and an anonymous code block which takes an object that does Cleanable. This basically ensures that your objects can be cleaned after your code block has finished running. Thus it provides an object-oriented clean method (aka destructor).

Example

# A class that needs to close or free resources
class Foo does Cleanable {

  # Guaranteed to be called once the anonymous block finishes execution
  method clean {
    # Close or free resources here
  }
}

clean(
  # The object we need to be cleaned up
  Foo.new,

  # The anonymous block
  -> $obj {
    # Do interesting stuff with $obj of type Cleanable
  }
);

Installation

To install it using zef (a module management tool bundled with Rakudo Star):

$ zef install Clean

Testing

To run tests:

$ prove -e "perl6 -Ilib"

To run author tests, you need to manually install Test::META:

$ zef install Test::META
$ TEST_AUTHOR=1 prove -e "perl6 -Ilib"

Author

Ahmad M. Zawawi, azawawi on #perl6, https://github.com/azawawi/

License

MIT License