#!/usr/bin/ruby -w class Dispatcher def initialize @map = Hash.new end def dispatch id #eval id begin method(id).call rescue NameError puts "undefined method: #{id}" end end private def a puts "called a" end def b puts "called b" end def method_missing id puts "method_missing: #{id.id2name}" end end d = Dispatcher.new while (line = gets) != nil d.dispatch line.chomp! end puts "bye"