From: Simon Strandgaard <0bz63fz3m1qt3001@...> Date: 2003-05-29T10:38:54+09:00 Subject: Array.extend versus instance.extend I want to install 'shift_until_kind_of' in the global Array class so that I can do like this: ary = [1, 2, "a", 3, 4, "b", 5, 6] assert_equal([1, 2], ary.shift_until_kind_of(String)) But extending the Array class does not work. How should I extend the global Array class ? module ArrayMisc def shift_until_kind_of(klass) res = [] loop do data = self.first break if (data == nil) || data.kind_of?(klass) res << data self.shift end res end end def test_shift_until #Array.extend ArrayMisc # BOOM, does not work ary = [1, 2, "a", 3, 4, "b", 5, 6] ary.extend ArrayMisc res = ary.shift_until_kind_of(String) assert_equal([1, 2], res) assert_equal(["a", 3, 4, "b", 5, 6], ary) end -- Simon Strandgaard