Rand Stats

Attribute::Predicate

zef:lizmat

Actions Status

NAME

Attribute::Predicate - add "is predicate" trait to Attributes

SYNOPSIS

use Attribute::Predicate;

class Foo {
    has $.bar is predicate;         # adds method "has-bar"
    has $.baz is predicate<bazzy>;  # adds method "bazzy"
}

Foo.new(bar => 42).has-bar;    # True
Foo.new(bar => 42).bazzy;      # False

DESCRIPTION

This module adds a is predicate trait to Attributes. It is similar in function to the "predicate" option of Perl's Moo and Moose object systems.

If specified without any additional information, it will create a method with the name "has-{attribute.name}". If a specific string is specified, then it will create the method with that given name.

The method in question will return a Bool indicating whether the attribute has a defined value.

AUTHOR

Elizabeth Mattijsen liz@raku.rocks

Source can be located at: https://github.com/lizmat/Attribute-Predicate . Comments and Pull Requests are welcome.

If you like this module, or what I’m doing more generally, committing to a small sponsorship would mean a great deal to me!

COPYRIGHT AND LICENSE

Copyright 2018, 2019, 2021, 2024 Elizabeth Mattijsen

This library is free software; you can redistribute it and/or modify it under the Artistic License 2.0.