Sha256: 3cc5b37cdc4f9cfead3d79d6289084c98fde444619994f55b77c3430583a9f26

Contents?: true

Size: 376 Bytes

Versions: 5

Compression:

Stored size: 376 Bytes

Contents

class Hash
  # Returns a new hash only with the specified keys (if present).
  #
  # @example Key order does not matter
  #   hash = { a: 1, b: 2, c: 3 }
  #   hash.extract(:b, :a) #=> { a: 1, b: 2 }
  # @example Missing keys are ignored
  #   hash.extract(:a, :d) #=> { a: 1}
  def extract(*ks)
    existing = keys & ks
    Hash[existing.zip(values_at(*existing))]
  end
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
shenanigans-1.0.18 lib/shenanigans/hash/extract.rb
shenanigans-1.0.17 lib/shenanigans/hash/extract.rb
shenanigans-1.0.16 lib/shenanigans/hash/extract.rb
shenanigans-1.0.15 lib/shenanigans/hash/extract.rb
shenanigans-1.0.14 lib/shenanigans/hash/extract.rb