山崎(ゆ)です。
PseudoHashなるものがあります。
http://raa.ruby-lang.org/project/pseudohash/require 'pseudohash'
pair = PseudoHash.new
pair["apple",true]="apple"
pair["and",true]="and"
pair["bee",true]="bee"
pair["cat",true]="cat"
pair.order.each do |key|
print key, "=>", pair[key], "\n"
end
配布されているPseudoHashでは、順序付きにするのに、
pair["apple",true]="apple"
としなければいけないのですが、順序付け以外の目的でPseudoHashが必要な場合
はないと思ったので、[]メソッドを書き換えて使っています。
require 'pseudohash'
class PseudoHash
def []=(k, *rest)
val, set = rest.reverse
# order.push k if set and not order.include? k
order.push k if not order.include? k
aset(k,val)
end
end
pair = PseudoHash.new
pair["apple"]="apple"
pair["and"]="and"
pair["bee"]="bee"
pair["cat"]="cat"
pair.order.each do |key|
print key, "=>", pair[key], "\n"
end
_______________________
Yusuke Yamasaki <
y-yamasaki@...>