Stephen Waits wrote:
>I just finished my "Learn Ruby" talk for the programmers here at work. 
>(Game programmers, strong in C/C++).
> ...
> I'd very much like to improve the document, so any feedback is 
> appreciated.  It also might be useful to others in my situation (teaching 
> Ruby to programmers).

While we're on errata, the @instance_var in the section on Variables may be 
misleading to newcomers. In that scope, it's "one per instance" of the class 
Dismissed, and there will only be one of these. It's only in an instance 
method (e.g. initialize) that you will have a variable for each instance of 
the class. Again in the Idiomatic Ruby section.

class Foo
  @instance_var = 0  # belongs to Foo itself
  def bar
    @instance_var = 0 # one per instance
  end
end

Mixins:
LessThanOrEqualComparable#>(other) should be "not self < other and not self 
== other"
>= should probably be not self < other

Also, I'm surprised you didn't cover Range in the core classes. All you have 
to do is
r = 1..5 #=> 1..5
r.class #=> Range
r.each {|i| puts i }

Under Everything is an Object, you didn't use is_a? kind_of? or superclass, 
and you didn't actually show that anything was an object. You did show 
everything has a class, and that Class is a Class. In particular, this is 
not implied by Object.class #=> Class. You can demonstrate it like this:
"foo".kind_of? Object #=> true
Class.kind_of? Object #=> true
Person.superclass #=> Object
Class.superclass #=> Module
Class.superclass.superclass #=> Object

Cheers,
Dave