Aion-Env
view release on metacpan or search on metacpan
t/aion/env.t view on Meta::CPAN
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::Env - ÑоздаÑÑ ÐºÐ¾Ð½ÑÑанÑÑ ÑвÑзаннÑÑ Ñо знаÑением из .env
#
# # VERSION
#
# 0.1
#
# # SYNOPSIS
#
# Файл .env:
#@> .env
#>> BIN_TEST=10
#>> OCT_TEST=${BIN_TEST}20
#@< EOF
#
subtest 'SYNOPSIS' => sub {
BEGIN {
delete @ENV{qw/BIN_TEST OCT_TEST BB_TEST NN_TEST/};
$ENV{UNI_TEST} = 30;
}
sub Int { sub { /^-?\d+$/ } }
use Aion::Env BIN_TEST => (isa => Int);
use Aion::Env OCT_TEST => (isa => Int);
use Aion::Env UNI_TEST => (isa => Int);
use Aion::Env BB_TEST => (isa => Int, default => 1);
local ($::_g0 = do {BIN_TEST;}, $::_e0 = do {10}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'BIN_TEST; # -> 10' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {OCT_TEST;}, $::_e0 = do {1020}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'OCT_TEST; # -> 1020' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {UNI_TEST;}, $::_e0 = do {30}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'UNI_TEST; # -> 30' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {BB_TEST;}, $::_e0 = do {1}); ::ok defined($::_g0) == defined($::_e0) && $::_g0 eq $::_e0, 'BB_TEST; # -> 1' or ::diag ::_struct_diff($::_g0, $::_e0); undef $::_g0; undef $::_e0;
local ($::_g0 = do {eval 'use Aion::Env NN_TEST => ()'; $@;}, $::_e0 = 'NN_TEST is\'nt defined!'); ::ok $::_g0 =~ /^${\quotemeta $::_e0}/, 'eval \'use Aion::Env NN_TEST => ()\'; $@; # ^-> NN_TEST is\'nt defined!' or ::diag ::_string_diff($::_g0, $::_...
local ($::_g0 = do {eval 'use Aion::Env NN_TEST => (nouname => 1)'; $@;}, $::_e0 = 'Unknown keyword: nouname'); ::ok $::_g0 =~ /^${\quotemeta $::_e0}/, 'eval \'use Aion::Env NN_TEST => (nouname => 1)\'; $@; # ^-> Unknown keyword: nouname' or ::diag :...
local ($::_g0 = do {eval 'use Aion::Env NN_TEST => (nouname1 => 1, nouname2 => 2)'; $@;}, $::_e0 = 'Unknown keywords: nouname1, nouname2'); ::ok $::_g0 =~ /^${\quotemeta $::_e0}/, 'eval \'use Aion::Env NN_TEST => (nouname1 => 1, nouname2 => 2)\'; $@;...
#
# # DESCRIPTION
#
# РпÑоекÑаÑ
иÑполÑзÑеÑÑÑ ÐºÐ¾Ð½ÑигÑÑаÑионнÑй Ñайл `.env` Ð´Ð»Ñ ÐºÐ¾Ð½ÑигÑÑаÑии пÑоекÑа, в `Makefile`, Ð´Ð»Ñ `docker` и `docker compose`. ÐаннÑй модÑÐ»Ñ Ð¿Ð¾Ð·Ð²Ð¾Ð»ÑÐµÑ Ð¾ÑоÑÐ...
#
# ÐонÑÑанÑÑ Ð¸Ð½Ð¸ÑиализиÑÑÑÑÑÑ Ð¸Ð· `%ENV`, еÑли Ñам Ð½ÐµÑ Ð·Ð½Ð°ÑÐµÐ½Ð¸Ñ Ð¸Ð»Ð¸ оно `undef`, Ñо из Ñайла `.env`, а еÑли и Ñам его не бÑÐ´ÐµÑ â из опÑии `default`.
#
# ÐÑи паÑÑинге Ñайла, оÑибка ÑинÑакÑиÑа пÑиведÑÑ Ðº иÑклÑÑениÑ.
#
# Тип пеÑеменной окÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¼Ð¾Ð¶Ð½Ð¾ пÑовеÑÑÑÑ Ñ Ð¿Ð¾Ð¼Ð¾ÑÑÑ Ð¾Ð¿Ñии `isa`. Ðна пÑÐ¸Ð½Ð¸Ð¼Ð°ÐµÑ Ð¿Ð¾Ð´Ð¿ÑогÑÐ°Ð¼Ð¼Ñ Ð¸Ð»Ð¸ обÑÐµÐºÑ Ñ Ð¿ÐµÑегÑÑженнÑм опеÑаÑоÑом `${}`. Ð ÑÑ...
#
# РекомендÑеÑÑÑ Ð½Ð°Ð·ÑваÑÑ Ð¿ÐµÑеменнÑе окÑÑÐ¶ÐµÐ½Ð¸Ñ Ð¸ÑполÑзÑÑ Ð½Ð°Ð·Ð²Ð°Ð½Ð¸Ðµ модÑÐ»Ñ Ð² коÑоÑом она обÑÑвлена. ÐапÑимеÑ, Ð¿Ð°ÐºÐµÑ `Aion::Type`, Ñогда имена пеÑ...
#
# # SUBROUTINES
#
# ## import ($cls, $name, %kw)
#
# СоздаÑÑ ÐºÐ¾Ð½ÑÑанÑÑ Ñ Ð¸Ð¼ÐµÐ½ÐµÐ¼ `$name` в пакеÑе из коÑоÑого вÑзван.
# ÐпÑионалÑно можно пеÑедаÑÑ Ð² `%kw` `isa` и `default`.
#
# ## parse ($file)
( run in 1.146 second using v1.01-cache-2.11-cpan-cdf2f3d4e48 )