NAME

    Data::Object::Role::Tryable

ABSTRACT

    Tryable Role for Perl 5

SYNOPSIS

      package Example;
    
      use Moo;
    
      with 'Data::Object::Role::Tryable';
    
      package main;
    
      use routines;
    
      my $example = Example->new;

DESCRIPTION

    This package provides a wrapper around the Data::Object::Try class
    which provides an object-oriented interface for performing complex
    try/catch operations.

METHODS

    This package implements the following methods:

 try

      try(CodeRef | Str $method) : InstanceOf['Data::Object::Try']

    The try method takes a method name or coderef and returns a
    Data::Object::Try object with the current object passed as the invocant
    which means that try and finally callbacks will receive that as the
    first argument.

    try example #1

        # given: synopsis
      
        my $tryer = $example->try(fun(@args) {
          [@args]
        });
      
        # $tryer->result(...)

    try example #2

        # given: synopsis
      
        my $tryer = $example->try(fun(@args) {
          die 'tried';
        });
      
        $tryer->default(fun($error) {
          return ['tried'] if $error =~ 'tried';
          return [$error];
        });
      
        # $tryer->result(...)

AUTHOR

    Al Newkirk, awncorp@cpan.org

LICENSE

    Copyright (C) 2011-2019, Al Newkirk, et al.

    This is free software; you can redistribute it and/or modify it under
    the terms of the The Apache License, Version 2.0, as elucidated in the
    "license file"
    <https://github.com/iamalnewkirk/data-object-role-tryable/blob/master/LICENSE>.

PROJECT

    Wiki <https://github.com/iamalnewkirk/data-object-role-tryable/wiki>

    Project <https://github.com/iamalnewkirk/data-object-role-tryable>

    Initiatives
    <https://github.com/iamalnewkirk/data-object-role-tryable/projects>

    Milestones
    <https://github.com/iamalnewkirk/data-object-role-tryable/milestones>

    Contributing
    <https://github.com/iamalnewkirk/data-object-role-tryable/blob/master/CONTRIBUTE.md>

    Issues
    <https://github.com/iamalnewkirk/data-object-role-tryable/issues>