module Hooks::ClassMethods

def define_hook_writer(hook, accessor_name)

def define_hook_writer(hook, accessor_name)
  self.send(:define_method, hook.to_sym) do |&block|
    if self.class.respond_to?(hook)
      self.class.send(hook.to_sym, &block)
    end
  end
  instance_eval <<-RUBY_EVAL, __FILE__, __LINE__ + 1
    def #{hook}(method=nil, &block)
      #{accessor_name} << (block || method)
    end
  RUBY_EVAL
end