Bread::Board::Service::WithParameters(3pm)

Bread::Board::Service::WithParameters3pm

Services with parameters

Version

version 0.37

Overview

This is a sub-role of Bread::Board::Service, for parameterized services. These are services that will instantiate different values depending on parameters that are passed to the "get" method. You can pass those parameters via the "service_params" attribute of "Bread::Board::Dependency", or via the "inflate" method of "Bread::Board::Service::Deferred::Thunk".

Attributes

"parameters"

Read-only hashref, will be passed as-is to "MooseX::Params::Validate"'s "validated_hash", so you can use things like "optional" and "default" in addition to type constraints:

  service something => (
    class => 'Thing',
    parameters => {
       type => { isa => 'Str', default => 'text' },
    },
  );

This attribute uses coercions on "Bread::Board::Service::Parameters" so that you can also say:

  service something => (
    class => 'Thing',
    parameters => ['type'],
  );

and it will be equivalent to:

  service something => (
    class => 'Thing',
    parameters => {
       type => { optional => 0 },
    },
  );

Methods

"has_parameters"

Predicate for the "parameters" attribute.

"has_parameter_defaults"

Returns true if any of the "parameters" have a "default" value.

"has_required_parameters"

Returns true if any of the "parameters" does not have "optional" set to true.

"check_parameters"

  my %parameters = $service->check_parameters(name1=>$value1,name2=>$value2);
  my %parameters = $service->check_parameters({name1=>$value1,name2=>$value2});

If any "parameters" are defined, this function validates its arguments against the parameters' definitions (using MooseX::Params::Validate). It will die if the validation fails, or return the validated parameters (including default value) if it succeeds.

"get"

Before the "get" method, arguments to "get" are passed through "check_parameters" and added to the "params" hashref. After the "get" method, those keys/values will be removed. In practice, this makes all parameters available to the actual "get" method body.

Releases

6 releases since Debian 8 (Jessie); the text changed 3 times.

  1. 8–9
  2. 10
  3. 11
  4. 12–13

Author

Stevan Little <[email protected]>

Bugs

Please report any bugs or feature requests on the bugtracker website https://github.com/stevan/BreadBoard/issues

When submitting a bug or request, please include a test-file or a patch to an existing test-file that illustrates the bug or desired feature.

From libbread-board-perl 0.37-2 in Debian 13 (Trixie). Parsed by carta from the page's man source.