[Rio-pm] Objetos Moose vs NonMoose
Junior Moraes
juniiior182 em gmail.com
Quarta Setembro 12 07:14:18 PDT 2012
Hi.
Módulos criados com *bless* possuem um modelo diferente dos módulos que
utilizam o Moose, certo?
Na verdade não sei, mas era o que eu achava até então.
Sempre achei que sendo diferentes, pra utilizarmos herança, o modelo do *
package* seria incompatível um com o outro, e pra isso eu utilizava o
módulo MouseX::NonMoose.
Eis que fuçando um pouco o módulo Badger::Log::File, experimentei testar os
*method modifiers* pra jogar a saída também pro STDERR:
extends 'Badger::Log::File';
after qw {
info
debug
warn
fatal
error
} => sub {
say STDERR $_[1];
};
Eis que fui ver a lista de deps do Badger::Log::File, e é gigante... Só que
*sem* o Moose! Logo, pensei que isso não funcionaria mas funciona!
Pra ilustrar melhor a situação:
package Fvox;
use common::sense;
sub new {
bless {}, shift;
}
sub execute {
my $self = shift;
say 'Do...';
}
1;
package Junior;
use Moose;
extends 'Fvox';
after 'execute' => sub {
say STDERR 'It works?!';
};
1;
my $fx = new Junior();
$fx->execute();
Alguém pode falar mais sobre objetos Moose vs NonMoose?
Quais as incompatibilidades que eu poderia enfrentar, se isso não
funcionava numas versões anteriores, etc?
--
______________________
< Junior "fvox" Moraes >
----------------------
\
\
.--.
|o_o |
|:_/ |
// \ \
(| | )
/'\_ _/`\
\___)=(___/
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: <http://mail.pm.org/pipermail/rio-pm/attachments/20120912/17a6b08d/attachment.html>
Mais detalhes sobre a lista de discussão Rio-pm