[](key)
click to toggle source
Calls superclass method
def [](key)
if value = super
value
elsif @default_proc && !key?(key)
@default_proc.call(self, key)
else
value
end
end
each_key() { |k| ... }
click to toggle source
def each_key
each_pair {|k, v| yield k}
end
each_value() { |v| ... }
click to toggle source
def each_value
each_pair {|k, v| yield v}
end
empty?()
click to toggle source
def empty?
each_pair {|k, v| return false}
true
end
fetch(key, default_value = NULL) { |key| ... }
click to toggle source
def fetch(key, default_value = NULL)
if NULL != (value = get_or_default(key, NULL))
value
elsif block_given?
yield key
elsif NULL != default_value
default_value
else
raise KEY_ERROR, 'key not found'
end
end
keys()
click to toggle source
def keys
arr = []
each_pair {|k, v| arr << k}
arr
end
marshal_dump()
click to toggle source
def marshal_dump
raise TypeError, "can't dump hash with default proc" if @default_proc
h = {}
each_pair {|k, v| h[k] = v}
h
end
marshal_load(hash)
click to toggle source
def marshal_load(hash)
initialize
populate_from(hash)
end
put_if_absent(key, value)
click to toggle source
def put_if_absent(key, value)
computed = false
result = compute_if_absent(key) do
computed = true
value
end
computed ? nil : result
end
size()
click to toggle source
def size
count = 0
each_pair {|k, v| count += 1}
count
end
value?(value)
click to toggle source
def value?(value)
each_value do |v|
return true if value.equal?(v)
end
false
end
values()
click to toggle source
def values
arr = []
each_pair {|k, v| arr << v}
arr
end