o DateTime é um pouco complexo por dentro, [ok, vou parar de falar, todo mundo já sabe que ele não é um modulo rapido]
2013/1/9 Tiago Peczenyj <[email protected]> > Agora alguem ja usou Aspect ? > > use Aspect; > before { > return unless $enable; > $_->args($_->args, time_zone => $default_time_zone) unless grep { > /time_zone/ } $_->args; > } call 'DateTime::today' > | call 'DateTime::new' > | call 'DateTime::from_epoch' > | call 'DateTime::last_day_of_month' > | call 'DateTime::now'; > > ADOREI > > ou poderia fazer > > use Aspect; > > after { > $_->return_value->set_time_zone( 'EST' ); > } call 'DateTime::today'; > > porem eu percebi uma coisa, não basta alterar o construtor pois tudo passa > por um construtor interno _new, melhor observar os metodos publicos do que > brincar com os internals > > 2013/1/9 Tiago Peczenyj <[email protected]> > >> Sim mas não precisa FUDER o sistema todo. >> >> >> 2013/1/9 Renato Santos <[email protected]> >> >>> Pessoas, o FIX não seria usado apenas por quem sabe que vai usar o FIX? >>> então ela já tem que estar ciente que o FIX pode causar BUGS caso o >>> comportamento default seja interferido dentro de chamadas que ela não >>> previu. (outros modulos) >>> >>> >>> 2013/1/9 Tiago Peczenyj <[email protected]> >>> >>>> Opa >>>> >>>> 2013/1/9 Eden Cardim <[email protected]> >>>> >>>>> >>>>> "Tiago" == Tiago Peczenyj < >>>>> [email protected]> writes: >>>>> >>>>> Tiago> Valeu Eden Então, eu li sobre o "rebless" depois de ter >>>>> Tiago> implementado. Acho ate que é uma solução mais elegante. >>>>> >>>>> rebless é bem perigoso, eu usaria com bastante cautela. >>>>> >>>> >>>> Pode dar um exemplo do perigo? >>>> >>>> >>>>> Tiago> Porém se os internals do DateTime forem alterados, os meus >>>>> Tiago> testes vão quebrar. Não é muito confiavel isso mas é >>>>> Tiago> interessante de se pensar. >>>>> >>>>> Tiago> Outra coisa que eu estava vendo é que o Enable é muito >>>>> Tiago> confuso. Seria mais facil, num problema em produção, >>>>> Tiago> comentar a linha que adiciona o meu modulo e mandar >>>>> Tiago> bala. Ou adicionar este módulo caso a configuração permita. >>>>> >>>>> Uma outra solução (não testada) que eu acho que pode funcionar bem é: >>>>> >>>>> use DateTime; >>>>> BEGIN { unshift 'Fix::DateTime', @DateTime::ISA }; >>>>> >>>>> E no Fix::DateTime você sobrecarrega o que quiser. Pra desabilitar >>>>> você faz o inverso. >>>>> >>>>> -- >>>>> Eden Cardim -- Insolide Soluções de TI Ltda. >>>>> +55 11 9644 8225 >>>>> http://insoli.de >>>>> =begin disclaimer >>>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>>> SaoPaulo-pm mailing list: [email protected] >>>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>>> =end disclaimer >>>>> >>>> >>>> >>>> >>>> -- >>>> Tiago B. Peczenyj >>>> Linux User #405772 >>>> >>>> http://about.me/peczenyj >>>> >>>> =begin disclaimer >>>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>>> SaoPaulo-pm mailing list: [email protected] >>>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>>> =end disclaimer >>>> >>>> >>> >>> >>> -- >>> Saravá, >>> Renato CRON >>> http://www.renatocron.com/blog/ >>> @renato_cron <http://twitter.com/#!/renato_cron> >>> >>> =begin disclaimer >>> Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ >>> SaoPaulo-pm mailing list: [email protected] >>> L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> >>> =end disclaimer >>> >>> >> >> >> -- >> Tiago B. Peczenyj >> Linux User #405772 >> >> http://about.me/peczenyj >> > > > > -- > Tiago B. Peczenyj > Linux User #405772 > > http://about.me/peczenyj > > =begin disclaimer > Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ > SaoPaulo-pm mailing list: [email protected] > L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> > =end disclaimer > > -- Saravá, Renato CRON http://www.renatocron.com/blog/ @renato_cron <http://twitter.com/#!/renato_cron>
=begin disclaimer Sao Paulo Perl Mongers: http://sao-paulo.pm.org/ SaoPaulo-pm mailing list: [email protected] L<http://mail.pm.org/mailman/listinfo/saopaulo-pm> =end disclaimer
