> That's it for the setup. The convenience methods I want to write
would
> accomplish those same three tasks but written like this:
>
> list.items[1]
>
> list.items.each
>
> list.items[1]= new_item
>

class T
  def initialize
    @items = []
  end
  def items
    @items.dup
  end
  def []=(idx, item)
    @items[idx] = item
  end
  def [](idx)
    @items[idx]
  end
end

t = T.new
t[0] = 'original1'
t[1] = 'original2'

puts 'before: '+t[0]
t[0] = 'modified'
puts 'after:'
t.items.each {|elem| puts elem}

Regards,
Yuri Kozlov