Sha256: 2c5972b6ef69524ed38ba81ac09f58a018ec12e8f3fadd41c9c586bf32a43af5

Contents?: true

Size: 777 Bytes

Versions: 1

Compression:

Stored size: 777 Bytes

Contents

require 'lib/rubinstein/actions'

module Rubinstein
  class Runner < BasicObject
    class << self
      def const_missing(name)
        Kernel.const_get(name)
      end
    end
    include Rubinstein::Actions

    attr_accessor :__world, :__handled

    def initialize(world)
      @__world = world
    end

    def __handle!
      @__handled = true
    end
    
    def __execute(string)
      @__handled = false
      instance_eval(string)
      __puts "I don't understand" unless @__handled
    end

    def __puts(message)
      $stdout.puts(message)
    end

    def method_missing(name,*args)
      return *args.flatten.unshift(name.to_s)
    end

    def look(*args)
      __puts @__world.player.location.instance_eval(:@description)
      __handle!
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
rubinstein-0.0.1 lib/rubinstein/runner.rb