module RGL::GraphVisitor::ClassMethods

Public Instance Methods

def_event_handler(*events)
Alias for: def_event_handlers
def_event_handlers(*events) click to toggle source

Defines an event handler.

# File lib/rgl/graph_visitor.rb, line 101
def def_event_handlers(*events)
  events.each do |event|
    params = event.to_s.include?('edge') ? 'u, v' : 'u'

    handler = "@#{event}_event_handler"

    class_eval <<-END
      def handle_#{event}(#{params})
        #{handler}.call(#{params}) if defined? #{handler}
      end

      def set_#{event}_event_handler(&block)
        #{handler} = block
      end
    END
  end
end
Also aliased as: def_event_handler