R
Robert Klemme
[growinghash.rb]require 'delegate'
class GrowingHash < DelegateClass(Hash)
def initialize(*a,&b)
super(Hash === a[0] ? a[0] : Hash.new(*a,&b))
end
def store(k,v)
raise ArgumentError, "Key already set: #{k.inspect}" if key? k
super
end
alias []= store
def set_if_unset(k,v=nil)
store(k, block_given? ? yield : v) unless key? k
end
end
Is this intended to be thread-safe?
Of course not. (see my posting)
Kind regards
robert