Skip to content

Instantly share code, notes, and snippets.

@viniciussbs
Created May 21, 2014 10:47
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save viniciussbs/1ed8a5e02ae9111edd4a to your computer and use it in GitHub Desktop.
Save viniciussbs/1ed8a5e02ae9111edd4a to your computer and use it in GitHub Desktop.
class Interpreter
def do_a() print "there, "; end
def do_d() print "Hello "; end
def do_e() print "!\n"; end
def do_v() print "Dave"; end
Dispatcher = {
"a" => instance_method(:do_a),
"d" => instance_method(:do_d),
"e" => instance_method(:do_e),
"v" => instance_method(:do_v)
}
def interpret(string)
string.each_char {|b| Dispatcher[b].bind(self).call }
end
end
interpreter = Interpreter.new
interpreter.interpret('dave')
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment