Here're few random notes I've written down for myself. Maybe some of them
have something good behind them, so you maybe want to consider them.

	- Aleksi

=begin
Something about hashes:

Hash#[]= shouldn't delete when said hash[key]=nil . 
At least I should be able to select the behaviour.

Hash#sort could have calling form with block.

There should be appending version of Hash#invert and update, so that

  ruby -e'a={"a"=>"c", "b"=>"c"}.invert; p a'
    {"c"=>"b"}

would say {"c" => ["a", "b"]}.
=end

=begin 
MatchData is not data by itself, it points to $1, $2,... So
this doesn't work:

ruby -e's="foo bar"; m1=/bar/.match s; m2=/foo/.match s; p m1[0...1];'
  ["foo"]

But this does:

ruby -e's="foo bar"; m1=/bar/.match(s).dup; m2=/foo/.match(s).dup; p
m1[0...1];'
  ["bar"]

Except that it does not:

ruby -e's="foo bar"; m1=/bar/.match(s).dup; m2=/for/.match(s).dup; p
m1[0...1];'
/tmp/rbREtzJK:1:in `clone': can't clone nil (TypeError)
        from /tmp/rbREtzJK:1:in `dup'
        from /tmp/rbREtzJK:1

So working nicely with regexps is a little bit tedious. It wouldn't have to
be (but it would be slower with autodupping).
=end

=begin
a, b = [1,2]           # is very different from
a, b, c = [1, 2], 3    # where a=[1,2], b=3, c=nil
(a, b), c = [1, 2], 3  # correct form

There's no bug here, I guess, just a note that one have to be careful.
=end

=begin
Emacs notes:

  - indentation:
    - when or regexp
	when %r|^GET\s+/setup(.*)|
	    parameters = $1           # two chars too much
	  print standard_setup
=end

=begin
ruby -e 'class Kernel; def foo; end; end;'
1: Kernel is not a class (TypeError)

How about reporting what it is (module in this case)?
=end

=begin
RubyUnit assertions should be added to object too (on request), so
instead of

	assert_kind_of(key, Array)

one should say

	key.assert_kind_of Array

And actually my first example is wrong as it should be

	assert_kind_of(Array, key)

and is small gotcha for me. Learnable anyway.

(Should we consider assert_kind_of! as a exceptional and extreme case, as
 we actually want shout it out! Key just *have to be* Array! :)

Testsuite should have alias add for add_test.
=end

=begin
 if data.something?
  data.then_proceed
 else data.something_else_perhaps?
  data.should_fail?
 end

Following passes parser easily probably just as wanted, maybe it's
just a gotcha. Gotcha is that the code looks like and should have been
using 'elsif'. Maybe we should force 'term' if 'else' clause has some other
code on the same line? Or warning perhaps.
=end