class InvocationContextIterator include Enumerable attr_accessor :_array_as_invocation_context private :_array_as_invocation_context def initialize(array_as_invocation_context) @_array_as_invocation_context = array_as_invocation_context @position = -1 @array_size = @_array_as_invocation_context.get_size().execute().get_value() @array_as_list = [1, 2, 3, 4, 5] @array_as_list.each_index { |i| @array_as_list[i] = _array_as_invocation_context.get_index(i) } end def each(&block) return @array_as_list.each(&block) end def [](i) return @_array_as_invocation_context.get_index(i) end def []=(i, value) return @_array_as_invocation_context.set_index(value, i).execute end end