class Hash

Invoca ::Hash extensions

Public Instance Methods

&(keys) click to toggle source
# File lib/invoca/utils/hash.rb, line 37
def &(keys)
  res = {}
  keys.each { |k| res[k] = self[k] if has_key?(k) }
  res
end
-(keys) click to toggle source

rubocop:disable Naming/BinaryOperatorParameterName

# File lib/invoca/utils/hash.rb, line 31
def -(keys)
  res = {}
  each_pair { |k, v| res[k] = v unless k.in?(keys) }
  res
end
map_hash() { |v| ... } click to toggle source
# File lib/invoca/utils/hash.rb, line 11
def map_hash(&block)
  res = {}
  each { |k, v| res[k] = block.arity == 1 ? yield(v) : yield(k, v) }
  res
end
partition_hash(keys = nil) { |k, v| ... } click to toggle source
# File lib/invoca/utils/hash.rb, line 17
def partition_hash(keys = nil)
  yes = {}
  no = {}
  each do |k, v|
    if block_given? ? yield(k, v) : keys.include?(k)
      yes[k] = v
    else
      no[k] = v
    end
  end
  [yes, no]
end
select_hash() { |v| ... } click to toggle source
# File lib/invoca/utils/hash.rb, line 5
def select_hash(&block)
  res = {}
  each { |k, v| res[k] = v if (block.arity == 1 ? yield(v) : yield(k, v)) } # rubocop:disable Style/ParenthesesAroundCondition
  res
end