Skip to content

Instantly share code, notes, and snippets.

@lucianspec
Created April 26, 2017 02:48

Revisions

  1. lucianspec created this gist Apr 26, 2017.
    18 changes: 18 additions & 0 deletions interpreter.rb
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,18 @@
    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')