class Gobstones::Runner::ExecutionContext

Public Class Methods

for_program(program) click to toggle source
# File lib/gobstones/runner/execution_context.rb, line 8
def self.for_program(program)
  ProgramExecutionContext.new(program)
end
new() click to toggle source
# File lib/gobstones/runner/execution_context.rb, line 12
def initialize
  @values = {}
end

Public Instance Methods

clear(variable_name) click to toggle source
# File lib/gobstones/runner/execution_context.rb, line 24
def clear(variable_name)
  @values.delete(variable_name)
end
get(variable_name) click to toggle source
# File lib/gobstones/runner/execution_context.rb, line 20
def get(variable_name)
  @values[variable_name] || undefined_variable_error(variable_name)
end
has_variable_named?(name) click to toggle source
# File lib/gobstones/runner/execution_context.rb, line 28
def has_variable_named?(name)
  @values.keys.any? { |variable| variable.named?(name) }
end
program_context() click to toggle source
# File lib/gobstones/runner/execution_context.rb, line 32
def program_context
  subclass_responsibility
end
set(variable_name, value) click to toggle source
# File lib/gobstones/runner/execution_context.rb, line 16
def set(variable_name, value)
  @values[variable_name] = value
end

Protected Instance Methods

undefined_variable_error(variable_name) click to toggle source
# File lib/gobstones/runner/execution_context.rb, line 38
def undefined_variable_error(variable_name)
  raise UndefinedVariableError.for(variable_name)
end