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

Responder a