Aion-Env

 view release on metacpan or  search on metacpan

README.md  view on Meta::CPAN

```

# DESCRIPTION

Ð’ проектах используется конфигурационный файл `.env` для конфигурации проекта, в `Makefile`, для `docker` и `docker compose`. Данный модуль позволяет оформÐ...

Константы инициализируются из `%ENV`, если там нет значения или оно `undef`, то из файла `.env`, а если и там его не будет – из опции `default`.

При парсинге файла, ошибка синтаксиса приведёт к исключению.

Тип переменной окружения можно проверять с помощью опции `isa`. Она принимает подпрограмму или объект с перегруженным оператором `${}`. Ð’ этÐ...

Рекомендуется называть переменные окружения используя название модуля в котором она объявлена. Например, пакет `Aion::Type`, тогда имена перÐ...

# SUBROUTINES

## import ($cls, $name, %kw)

Создаёт константу с именем `$name` в пакете из которого вызван.
Опционально можно передать в `%kw` `isa` и `default`.

i18n/Aion/Env.ru-en.po  view on Meta::CPAN


msgid "В проектах используется конфигурационный файл `.env` для конфигурации проекта, в `Makefile`, для `docker` и `docker compose`. Данный модуль позволяет оф...
msgstr "Projects use the `.env` configuration file for project configuration, in `Makefile`, for `docker` and `docker compose`. This module allows you to design environment variables as constants of `perl` modules."

msgid "Константы инициализируются из `%ENV`, если там нет значения или оно `undef`, то из файла `.env`, а если и там его не будет – из опции `default`."
msgstr "Constants are initialized from `%ENV`, if there is no value there or it is `undef`, then from the `.env` file, and if it is not there, from the `default` option."

msgid "При парсинге файла, ошибка синтаксиса приведёт к исключению."
msgstr "When parsing a file, a syntax error will result in an exception."

msgid "Тип переменной окружения можно проверять с помощью опции `isa`. Она принимает подпрограмму или объект с перегруженным оператором `${}`. Ð...
msgstr "The type of an environment variable can be checked using the `isa` option. It accepts a subroutine or object with the `${}` operator overloaded. In this case, the value will be passed to `$_`. If the object has a `validate` method, like `Aion...

msgid "Рекомендуется называть переменные окружения используя название модуля в котором она объявлена. Например, пакет `Aion::Type`, тогда имена ...
msgstr "It is recommended to name environment variables using the name of the module in which it is declared. For example, the package is `Aion::Type`, then the names of the environment variables in it are `AION_TYPE_*`."

msgid "Создаёт константу с именем `$name` в пакете из которого вызван.\n"
"Опционально можно передать в `%kw` `isa` и `default`."
msgstr "Creates a constant with the name `$name` in the package from which it is called.\n"
"Optionally, you can pass `isa` and `default` to `%kw`."

msgid "Парсит файл формата `.env` и возвращает хеш с переменными из него."

lib/Aion/Env.md  view on Meta::CPAN

```

# DESCRIPTION

Ð’ проектах используется конфигурационный файл `.env` для конфигурации проекта, в `Makefile`, для `docker` и `docker compose`. Данный модуль позволяет оформÐ...

Константы инициализируются из `%ENV`, если там нет значения или оно `undef`, то из файла `.env`, а если и там его не будет – из опции `default`.

При парсинге файла, ошибка синтаксиса приведёт к исключению.

Тип переменной окружения можно проверять с помощью опции `isa`. Она принимает подпрограмму или объект с перегруженным оператором `${}`. Ð’ этÐ...

Рекомендуется называть переменные окружения используя название модуля в котором она объявлена. Например, пакет `Aion::Type`, тогда имена перÐ...

# SUBROUTINES

## import ($cls, $name, %kw)

Создаёт константу с именем `$name` в пакете из которого вызван.
Опционально можно передать в `%kw` `isa` и `default`.

lib/Aion/Env.pm  view on Meta::CPAN

    die sprintf "Unknown keyword%s: %s",
    	scalar keys %kw == 1? '': 's',
     	join ", ", sort keys %kw if keys %kw;
      
    die "$name is'nt defined!" if !exists $ENV{$name} && !exists $env{$name} && !$is_default;

    my $pkg = caller;
    my $val = $ENV{$name} // $env{$name} // $default;

    if($isa) {
    	if(UNIVERSAL::can($isa, "validate")) { $isa->validate($val, $name) }
     	else {
	    	local $_ = $val;
	    	die "$name type is'nt isa!" unless $isa->();
		}
    }
    
    constant->import("$pkg\::$name", $val);
}

my $BOM = "\x{feff}";

lib/Aion/Env.pm  view on Meta::CPAN

	eval 'use Aion::Env NN_TEST => (nouname1 => 1, nouname2 => 2)'; $@; # ^-> Unknown keywords: nouname1, nouname2

=head1 DESCRIPTION

Projects use the C<.env> configuration file for project configuration, in C<Makefile>, for C<docker> and C<docker compose>. This module allows you to design environment variables as constants of C<perl> modules.

Constants are initialized from C<%ENV>, if there is no value there or it is C<undef>, then from the C<.env> file, and if it is not there, from the C<default> option.

When parsing a file, a syntax error will result in an exception.

The type of an environment variable can be checked using the C<isa> option. It accepts a subroutine or object with the C<${}> operator overloaded. In this case, the value will be passed to C<$_>. If the object has a C<validate> method, like C<Aion::T...

It is recommended to name environment variables using the name of the module in which it is declared. For example, the package is C<Aion::Type>, then the names of the environment variables in it are C<AION_TYPE_*>.

=head1 SUBROUTINES

=head2 import ($cls, $name, %kw)

Creates a constant with the name C<$name> in the package from which it is called.
Optionally, you can pass C<isa> and C<default> to C<%kw>.

t/aion/env.t  view on Meta::CPAN


# 
# # DESCRIPTION
# 
# Ð’ проектах используется конфигурационный файл `.env` для конфигурации проекта, в `Makefile`, для `docker` и `docker compose`. Данный модуль позволяет офорÐ...
# 
# Константы инициализируются из `%ENV`, если там нет значения или оно `undef`, то из файла `.env`, а если и там его не будет – из опции `default`.
# 
# При парсинге файла, ошибка синтаксиса приведёт к исключению.
# 
# Тип переменной окружения можно проверять с помощью опции `isa`. Она принимает подпрограмму или объект с перегруженным оператором `${}`. Ð’ эÑ...
# 
# Рекомендуется называть переменные окружения используя название модуля в котором она объявлена. Например, пакет `Aion::Type`, тогда имена пеÑ...
# 
# # SUBROUTINES
# 
# ## import ($cls, $name, %kw)
# 
# Создаёт константу с именем `$name` в пакете из которого вызван.
# Опционально можно передать в `%kw` `isa` и `default`.
# 



( run in 0.906 second using v1.01-cache-2.11-cpan-13bb782fe5a )