Class::Tiny::ConstrainedAccessor - Generate Class::Tiny accessors that apply type constraints
Class::Tiny uses custom accessors if they are defined before the use Class::Tiny statement in a package. This module creates custom accessors that behave as standard Class::Tiny accessors except that they apply type constraints (isa relationships). Type constraints can come from TODO (e.g., Type::Tiny).
use Class::Tiny
Class::Tiny
isa
Example of a class using this package:
package SampleClass; use Scalar::Util qw(looks_like_number); use Type::Tiny; my $MediumInteger = Type::Tiny->new( name => 'MediumInteger', constraint => sub { looks_like_number($_) and $_ >= 10 and $_ < 20 } ); use Class::Tiny::ConstrainedAccessor { medint => $MediumInteger, # create accessor sub medint() med_with_default => $MediumInteger, }; # After using ConstrainedAccessor use Class::Tiny qw(medint regular), { med_with_default => 12, };
Creates the accessors you have requested.
Christopher White, <cxwembedded at gmail.com>
<cxwembedded at gmail.com>
Please report any bugs or feature requests through the GitHub Issues interface at https://github.com/cxw42/Class-Tiny-ConstrainedAccessor. I will be notified, and then you'll automatically be notified of progress on your bug as I make changes.
You can find documentation for this module with the perldoc command.
perldoc Class::Tiny::ConstrainedAccessor
You can also look for information at:
GitHub (report bugs here)
https://github.com/cxw42/Class-Tiny-ConstrainedAccessor
RT: CPAN's request tracker
https://rt.cpan.org/NoAuth/Bugs.html?Dist=Class-Tiny-ConstrainedAccessor
Search CPAN
https://metacpan.org/release/Class-Tiny-ConstrainedAccessor
Copyright 2019 Christopher White.
This program is free software; you can redistribute it and/or modify it under the terms of the the Apache License (2.0). You may obtain a copy of the full license at:
https://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software distributed under the License is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for the specific language governing permissions and limitations under the License.
To install Class::Tiny::ConstrainedAccessor, copy and paste the appropriate command in to your terminal.
cpanm
cpanm Class::Tiny::ConstrainedAccessor
CPAN shell
perl -MCPAN -e shell install Class::Tiny::ConstrainedAccessor
For more information on module installation, please visit the detailed CPAN module installation guide.