[Nitro] Problem with aspects (in Facets).

nyarly at gmail.com nyarly at gmail.com
Mon Feb 5 14:34:59 EST 2007


Tom and I actually had a back and forth about this.  The dependency
slipped my mind:

The only addendum to make to that fix is:

...
def #{m}(*args, &block)
   #{gen_advice_code(m, target.advices, :pre)}
   __unwrapped_#{m}(*args, &block)
...

On Feb 5, 11:08 am, "George Moschovitis"
<george.moschovi... at gmail.com> wrote:
> While trying to make the no-eval sql.rb patch to work I found out that
> Aspects#wrap did not work as expected (at least for methods with default
> parameters, due to the way that airty works in Ruby). Here is a fix:
>
>   def self.wrap(target, methods = target.instance_methods)
>     include_advice_modules(target)
>
>     for m in [methods].flatten
>       target.module_eval <<-end_eval, __FILE__, __LINE__
>         alias_method :__unwrapped_#{m}, :#{m}
>         def #{m}(*args)
>           #{gen_advice_code(m, target.advices, :pre)}
>           __unwrapped_#{m}(*args)
>           #{gen_advice_code(m, target.advices, :post)}
>         end
>       end_eval
>     end
>   end
>
> this seems to work... But, I would like to ask Tom to have a look at the
> Aspects implementation and perhaps work his magic on a better solution.
> In the meantime please include this fix in facets/more/aspects.rb
>
> -g.
>
> --http://blog.gmosx.comhttp://cull.grhttp://www.joy.grhttp://nitroproject.org
>
> _______________________________________________
> Nitro-general mailing list
> Nitro-gene... at rubyforge.orghttp://rubyforge.org/mailman/listinfo/nitro-general



More information about the Nitro-general mailing list