module Temple::Mixins::Dispatcher::ClassMethods

def temple_dispatch(*bases)

def temple_dispatch(*bases)
  bases.each do |base|
    class_eval %{def on_#{base}(type, *args)
      if respond_to?("on_" #{base.to_s.inspect} "_\#{type}")
        send("on_" #{base.to_s.inspect} "_\#{type}", *args)
      else
        [:#{base}, type, *args]
      end
    end}
  end
end