Aion
view release on metacpan or search on metacpan
use common::sense; use open qw/:std :utf8/; use Carp qw//; use Cwd qw//; use File::Basename qw//; use File::Find qw//; use File::Slurper qw//; use File::Spec qw//; use File::Path qw//; use Scalar::Util qw//; use Test::More 0.98; use String::Diff q...
# # NAME
#
# Aion - поÑÑмодеÑниÑÑÑÐºÐ°Ñ Ð¾Ð±ÑекÑÐ½Ð°Ñ ÑиÑÑема Ð´Ð»Ñ Perl 5, ÑÐ°ÐºÐ°Ñ ÐºÐ°Ðº «Mouse», «Moose», «Moo», «Mo» и «M», но Ñ ÑлÑÑÑениÑми
#
# # VERSION
#
# 1.8
#
# # SYNOPSIS
#
subtest 'SYNOPSIS' => sub {
package Calc {
use Aion;
has a => (is => 'ro+', isa => Num);
has b => (is => 'ro+', isa => Num);
has op => (is => 'ro', isa => Enum[qw/+ - * \/ **/], default => '+');
sub result : Isa(Me => Num) {
my ($self) = @_;
eval "${\ $self->a} ${\ $self->op} ${\ $self->b}";
}
}
local ($::_g0 = do {Calc->new(a => 1.1, b => 2)->result}, $::_e0 = "3.1"); ::ok $::_g0 eq $::_e0, 'Calc->new(a => 1.1, b => 2)->result # => 3.1' or ::diag ::_string_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
#
# # DESCRIPTION
#
# Aion â ÐÐÐ-ÑÑеймвоÑк Ð´Ð»Ñ ÑÐ¾Ð·Ð´Ð°Ð½Ð¸Ñ ÐºÐ»Ð°ÑÑов Ñ **ÑиÑами**, Ð¸Ð¼ÐµÐµÑ **аÑпекÑÑ**, **Ñоли** и Ñак далее.
#
# СвойÑÑва, обÑÑвленнÑе ÑеÑез has, назÑваÑÑÑÑ **ÑиÑами**.
#
# Ð `is`, `isa`, `default` и Ñак далее в `has` назÑваÑÑÑÑ **аÑпекÑами**.
#
# Ðомимо ÑÑандаÑÑнÑÑ
аÑпекÑов, Ñоли могÑÑ Ð´Ð¾Ð±Ð°Ð²Ð»ÑÑÑ Ñвои ÑобÑÑвеннÑе аÑпекÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¿Ð¾Ð´Ð¿ÑогÑÐ°Ð¼Ð¼Ñ **aspect**.
#
# СигнаÑÑÑа меÑодов Ð¼Ð¾Ð¶ÐµÑ Ð¿ÑовеÑÑÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð°ÑÑибÑÑа `:Isa(...)`.
#
# # SUBROUTINES IN CLASSES AND ROLES
#
# `use Aion` импоÑÑиÑÑÐµÑ ÑÐ¸Ð¿Ñ Ð¸Ð· модÑÐ»Ñ `Aion::Types` и ÑледÑÑÑие подпÑогÑаммÑ:
#
# ## has ($name, %aspects)
#
# СоздаÑÑ Ð¼ÐµÑод Ð´Ð»Ñ Ð¿Ð¾Ð»ÑÑениÑ/ÑÑÑановки ÑÑнкÑии (ÑвойÑÑва) клаÑÑа.
#
# Файл lib/Animal.pm:
#@> lib/Animal.pm
#>> package Animal;
#>> use Aion;
#>>
#>> has type => (is => 'ro+', isa => Str);
#>> has name => (is => 'rw-', isa => Str, default => 'murka');
#>>
#>> 1;
#@< EOF
#
( run in 0.722 second using v1.01-cache-2.11-cpan-0d23b851a93 )