logo
Free, unlimited AI code reviews that run on commit
git-lrc git-lrc GitHub Install Now We'd appreciate a star git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt git-lrc - Free, unlimited AI code reviews that run on commit | Product Hunt

Bread::Board::Service::WithParameters - Services with parameters

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 },
           },
         );

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.

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".

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.

Name

       Bread::Board::Service::WithParameters - Services with parameters

Version

       version 0.37

See Also