> In standard ruby:
> 
> class Module
>    def before(*method_names)
>      @before = method_names
>    end
>    alias pre_beforehack_append_features append_features
>    def append_features(klass)
>      @before ||= []
>      @before.each{|method_name|
>        klass.module_eval <<-END_OF_ADVICE
>          alias pre_include_#{self}_#{method_name} #{method_name}
>          def #{method_name}(*args,&block)
>            #{method_name}_#{self}(*args,&block)
>            pre_include_#{self}_#{method_name}(*args,&block)
>          end
>        END_OF_ADVICE
>      }
>      pre_beforehack_append_features(klass)
>    end
> end
[...]

I have used this solution, and the small problem is that I must define
the method to wrap _before_ I include the mixin. Is it possible to get
rid of this constraint?

Thanks:
Circum