#!/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"
