==(other)
click to toggle source
Calls superclass method
def ==(other)
begin
case other
when BSON::OrderedHash
keys == other.keys && values == other.values
else
super
end
rescue
false
end
end
[]=(key, value)
click to toggle source
Calls superclass method
def []=(key, value)
unless has_key?(key)
@ordered_keys << key
end
super(key, value)
end
clear()
click to toggle source
Calls superclass method
def clear
super
@ordered_keys = []
end
clone()
click to toggle source
def clone
Marshal::load(Marshal.dump(self))
end
delete(key, &block)
click to toggle source
Calls superclass method
def delete(key, &block)
@ordered_keys.delete(key) if @ordered_keys
super
end
delete_if() { |key, self| ... }
click to toggle source
def delete_if(&block)
keys.each do |key|
if yield key, self[key]
delete(key)
end
end
self
end
dup()
click to toggle source
def dup
result = OrderedHash.new
@ordered_keys.each do |key|
result[key] = self[key]
end
result
end
each() { |k, self| ... }
click to toggle source
def each
@ordered_keys.each { |k| yield k, self[k] }
self
end
eql?(o)
click to toggle source
def eql?(o)
if o.instance_of? BSON::OrderedHash
self.hash == o.hash
else
false
end
end
hash()
click to toggle source
def hash
code = 17
each_pair do |key, value|
code = 37 * code + key.hash
code = 37 * code + value.hash
end
code & 0x7fffffff
end
inspect()
click to toggle source
def inspect
str = "#<BSON::OrderedHash:0x#{self.object_id.to_s(16)} {"
str << (@ordered_keys || []).collect { |k| "\"#{k}\"=>#{self.[](k).inspect}" }.join(", ")
str << '}>'
end
keys()
click to toggle source
def keys
@ordered_keys.dup
end
merge(other)
click to toggle source
def merge(other)
oh = self.dup
oh.merge!(other)
oh
end
merge!(other)
click to toggle source
Calls superclass method
def merge!(other)
@ordered_keys += other.keys
@ordered_keys.uniq!
super(other)
end
reject(&block)
click to toggle source
def reject(&block)
clone = self.clone
return clone unless block_given?
clone.delete_if(&block)
end
reject!() { |k, v| ... }
click to toggle source
def reject!(&block)
changed = false
self.each do |k,v|
if yield k, v
changed = true
delete(k)
end
end
changed ? self : nil
end
replace(other)
click to toggle source
Calls superclass method
def replace(other)
@ordered_keys.replace(other.keys)
super
end
to_a()
click to toggle source
def to_a
@ordered_keys.map { |k| [k, self[k]] }
end
values()
click to toggle source
def values
collect { |k, v| v }
end
yaml_initialize(tag, val)
click to toggle source
Calls superclass method
def yaml_initialize(tag, val)
@ordered_keys = []
super
end