Yanick Champoux > Bread-Board > Bread::Board::Service::WithParameters

Download:
Bread-Board-0.33.tar.gz

Dependencies

Annotate this POD

Website

View/Report Bugs
Module Version: 0.33   Source  

NAME ^

Bread::Board::Service::WithParameters

VERSION ^

version 0.33

DESCRIPTION ^

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.

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.

syntax highlighting: