C:\Perl_PPM\Bread-Board-0.33\blib/lib/Bread/Board/Service/WithParameters.pm



NAME

Bread::Board::Service::WithParameters


VERSION

version 0.33


DESCRIPTION

This is a sub-role of the Bread::Board::Service manpage, 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|Bread::Board::Service::Deferred::Thunk/inflate >>.


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 the MooseX::Params::Validate manpage). 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.


AUTHOR

Stevan Little <stevan@iinteractive.com>


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.


COPYRIGHT AND LICENSE

This software is copyright (c) 2015 by Infinity Interactive.

This is free software; you can redistribute it and/or modify it under the same terms as the Perl 5 programming language system itself.

 C:\Perl_PPM\Bread-Board-0.33\blib/lib/Bread/Board/Service/WithParameters.pm