module Polyfill::V2_3::Hash
Public Instance Methods
<(other)
click to toggle source
# File lib/polyfill/v2_3/hash.rb, line 4 def <(other) other = InternalUtils.to_hash(other) return false if size == other.size all? { |k, v| other[k] == v } end
<=(other)
click to toggle source
# File lib/polyfill/v2_3/hash.rb, line 12 def <=(other) other = InternalUtils.to_hash(other) all? { |k, v| other[k] == v } end
>(other)
click to toggle source
# File lib/polyfill/v2_3/hash.rb, line 18 def >(other) other = InternalUtils.to_hash(other) return false if size == other.size other.all? { |k, v| self[k] == v } end
>=(other)
click to toggle source
# File lib/polyfill/v2_3/hash.rb, line 26 def >=(other) other = InternalUtils.to_hash(other) other.all? { |k, v| self[k] == v } end
dig(head, *rest)
click to toggle source
# File lib/polyfill/v2_3/hash.rb, line 32 def dig(head, *rest) [head, *rest].reduce(self) do |value, accessor| next_value = case value when ::Array value.at(accessor) when ::Hash value[accessor] when ::Struct value[accessor] if value.members.include?(accessor) else begin break value.dig(*rest) rescue NoMethodError raise TypeError, "#{value.class} does not have a #dig method" end end break nil if next_value.nil? next_value end end
fetch_values(*keys)
click to toggle source
# File lib/polyfill/v2_3/hash.rb, line 55 def fetch_values(*keys) if block_given? block = ::Proc.new keys.each_with_object([]) do |key, values| values << fetch(key, &block) end else keys.each_with_object([]) do |key, values| values << fetch(key) end end end
to_proc()
click to toggle source
# File lib/polyfill/v2_3/hash.rb, line 69 def to_proc method(:[]).to_proc end