Suhku Huh
3/10/2006 9:59:00 PM
I'd like to make a class that behave like a Hash but keeps keys in created
order.
Followings are some initial testing codes...
class OHash < Hash
def self.[](*args)
if (args.size == 1) and args[0].kind_of?(Hash)
args[0].each_key { |k| puts k}
else
args.each_index { |i| puts(a[i]) if (i % 2) == 0 }
end
super
end
def []=(key, value)
puts key
super
end
end
I'm going to replace puts call to assignment later, and would like to use
instead of Hash or even override default Hash's methods using alias.
Tests...
> OHash['b'=>2, 'c'=>3, 'a'=>1, 'aa'=>11]
aa
a
b
c
=> {'aa'=>11, 'a'=>1, 'b'=>2, 'c'=>3}
> OHash['b', 2, 'c', 3, 'a', 1, 'aa', 11]
b
c
a
aa
As the code says, argument to class [] method is a already Hash when we
initialize hash form.
Any comments, ideas and test results would be appreciated.
Suhku