[SP-pm] Fix-DateTime

Renato Santos renato.cron at gmail.com
Wed Jan 9 06:14:11 PST 2013


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 <tiago.peczenyj at gmail.com>

> 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 <tiago.peczenyj at gmail.com>
>
>> Sim mas não precisa FUDER o sistema todo.
>>
>>
>> 2013/1/9 Renato Santos <renato.cron at gmail.com>
>>
>>> 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 <tiago.peczenyj at gmail.com>
>>>
>>>> Opa
>>>>
>>>> 2013/1/9 Eden Cardim <eden at insoli.de>
>>>>
>>>>> >>>>> "Tiago" == Tiago Peczenyj <
>>>>> tiago.peczenyj-Re5JQEeQqe8AvxtiuMwx3w at public.gmane.org> 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: SaoPaulo-pm at pm.org
>>>>>  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: SaoPaulo-pm at pm.org
>>>>  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: SaoPaulo-pm at pm.org
>>>  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: SaoPaulo-pm at pm.org
>  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>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.pm.org/pipermail/saopaulo-pm/attachments/20130109/f5a10139/attachment-0001.html>


More information about the SaoPaulo-pm mailing list