Skip to content

Instantly share code, notes, and snippets.

@masak
Created March 9, 2009 07:48
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 masak/76158 to your computer and use it in GitHub Desktop.
Save masak/76158 to your computer and use it in GitHub Desktop.
------------------------------------------------- Module#instance_method
mod.instance_method(symbol) => unbound_method
------------------------------------------------------------------------
Returns an +UnboundMethod+ representing the given instance method
in _mod_.
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_byte {|b| Dispatcher[b].bind(self).call }
end
end
interpreter = Interpreter.new
interpreter.interpret('dave')
_produces:_
Hello there, Dave!
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment