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