RubyCocoa の構造体クラスを使いやすくした

いままで、RubyCocoaCocoa の構造体クラス (NSRect、NSPoint、NSSize、NSRange) を使うときに、

a = NSRect.new
b = NSRect.new
if NSIntersectsRect(a, b)
  # 矩形が交差してる場合
end

のように書いていたが、これでは使いづらいので、

a.intersect?(b)

みたいに書けるようにした。(r2002)
追加したメソッドは、以下の通り。

NSRect

center 矩形の中央の点を返す
contain?(rect or point) rect か point が矩形に含まれるなら true
empty? 矩形のサイズが 0 なら true
inflate(dx, dy) X方向に dx、Y方向に dy だけ矩形を拡張
inset(dx, dy) X方向に dx、Y方向に dy だけ矩形を縮める
integral float の座標と大きさを int に丸める
intersect?(rect) 矩形が rect と交差していれば true
intersection(rect) 矩形と rect の交差矩形を返す
offset(dx, dy) 矩形の位置を X方向に dx、Y方向に dy だけずらす
union(rect) 矩形と rect の包含矩形を返す

NSPoint

in?(rect) / inRect?(rect) 点が rect に含まれるなら true

NSRange

contain?(range or location) range か location が範囲に含まれるなら true
empty? 範囲の長さが 0 なら true
intersect?(range) 範囲と range が重なる部分があれば true
intersection(range) 範囲と range の交差領域を返す
union(range) 範囲と range の包含領域を返す

他にも、

p NSRect.new(150, 150, 100, 100)
#<OSX::NSRect:0x62218c>
p NSPoint.new(200, 200)
#<OSX::NSPoint:0x6285a0>
p NSSize.new(150, 300)
#<OSX::NSSize:0x62c9d4>
p NSRange.new(10, 8)
#<OSX::NSRange:0x62bef8>

と表示されていたのを、

#<OSX::NSRect x=150.0, y=150.0, width=100.0, height=100.0>
#<OSX::NSPoint x=200.0, y=200.0>
#<OSX::NSSize width=150.0, height=300.0>
#<OSX::NSRange location=10, length=8>

のように、きちんと内部の状態を出力するようにした。(r2003)
細かいことだけど、これでだいぶデバッグがやりやすくなると思う。