[name] I agree Setter is rather vague, if there are no name change
requests then it goes live some time tonight as
MooseX::MutatorAttributes

http://www.develonizer.com/svn/MooseX-MutatorAttributes/trunk/

[failure] Eric I see your point and I've changed it though I would
like to get around to having a way to change that, something like:

use MooseX::MutatorAttributes failure=>'ignore';
....
$self->set_failure('deadly');
$self->set( not_here => $value )->method;

I agree completely though that the default should be deadly, though
there are some instances in some of the code that I'm dealing with
here where I would want things to be ignored on failure (I'll accept
the any stones thrown my way).

[call] Again pestering welcome, Eric you should know that by now.  All
ribbing aside though, about your code, wouldn't things be cleaner if
you dealt with the hash as a hash? is there some benefit of converting
types? It reads rather clunky as your pulling things off in stages,
though by the time it's compiled I'm sure that there the same, Also it
seems though that the only real difference between call and set would
be calling $self->meta->{'%!methods'} vs {'%!attributes} ?


On Fri, Aug 1, 2008 at 1:35 PM, Eric Wilhelm <[EMAIL PROTECTED]> wrote:
> # from benh
> # on Thursday 31 July 2008 19:38:
>
>>So I'm looking for some
>>feedback before I toss it up on CPAN.
>
>  s/cluck/croak/
>
> That would seem more analogous to the "Can't locate method ..." error
> which would typically get thrown when trying to call a mutator for a
> non-existent attribute.
>
> # from Paul Fenwick
> # on Thursday 31 July 2008 23:25:
>
>>Just to ensure my understanding is correct, this is a module which
>> allows a class to return the object after a write accessor is called,
>> rather than the previous (or current) value?
>
> It would seem so.  Now I'm wondering if I should pester Ben with the
> issue of more generic chaining.
>
>  $obj->call(method1 => [EMAIL PROTECTED], method2 => [EMAIL 
> PROTECTED])->method3;
>
>  sub call {
>    my $self = shift;
>    my @list = @_;
>
>    while(defined(my $method) = shift(@list)) {
>      my $args = shift(@list);
>      $self->$method(ref($args) ? @$args : $args);
>    }
>    return($self);
>  }
>
> But now I'm just being silly.  Everyone knows that should just be an
> AUTOLOAD with a 'call_' prefix on every method.
>
>  $self->call_method1(@args1)->call_method2(@args2)->method3;
>
> --Eric
> --
> The only thing that could save UNIX at this late date would be a new $30
> shareware version that runs on an unexpanded Commodore 64.
> --Don Lancaster (1991)
> ---------------------------------------------------
>    http://scratchcomputing.com
> ---------------------------------------------------
>



-- 
benh~

Reply via email to