N
Nikolay Pavlov
Hallo all.
Of course i am reinventing the wheel, but may be that would be helpful for
some one. With this method you can replace a key with a new one in a Hash.
It could be helpful for example if you want to parse a lot of XML documents
in hash from various external sources in one Library, so that you can
handle a unified interface.
class Hash
# Replace an old key with a new one
#
# === Arguments:
# * old_key
# * new_key
def alter_key(old_key, new_key)
raise IndexError.new("key already exist") if self[new_key]
if self.has_key?(old_key)
self[new_key] = self[old_key]
self.delete(old_key)
end
return self
end
end
irb(main):006:0> hash = Hash.new
=> {}
irb(main):007:0> hash[
ld] = 10000
=> 10000
irb(main):008:0> hash.alter_key
old, :new)
=> {:new=>10000}
irb(main):009:0> hash[:new]
=> 10000
Of course i am reinventing the wheel, but may be that would be helpful for
some one. With this method you can replace a key with a new one in a Hash.
It could be helpful for example if you want to parse a lot of XML documents
in hash from various external sources in one Library, so that you can
handle a unified interface.
class Hash
# Replace an old key with a new one
#
# === Arguments:
# * old_key
# * new_key
def alter_key(old_key, new_key)
raise IndexError.new("key already exist") if self[new_key]
if self.has_key?(old_key)
self[new_key] = self[old_key]
self.delete(old_key)
end
return self
end
end
irb(main):006:0> hash = Hash.new
=> {}
irb(main):007:0> hash[
=> 10000
irb(main):008:0> hash.alter_key
=> {:new=>10000}
irb(main):009:0> hash[:new]
=> 10000