Sha256: 98a0f92bdde511ac069574d093501f599e6b98a0340984a5359481a9e003cb22
Contents?: true
Size: 922 Bytes
Versions: 49
Compression:
Stored size: 922 Bytes
Contents
# frozen_string_literal: true class Hash unless Hash.instance_methods(false).include?(:compact) # Returns a hash with non +nil+ values. # # hash = { a: true, b: false, c: nil } # hash.compact # => { a: true, b: false } # hash # => { a: true, b: false, c: nil } # { c: nil }.compact # => {} # { c: true }.compact # => { c: true } def compact select { |_, value| !value.nil? } end end unless Hash.instance_methods(false).include?(:compact!) # Replaces current hash with non +nil+ values. # Returns +nil+ if no changes were made, otherwise returns the hash. # # hash = { a: true, b: false, c: nil } # hash.compact! # => { a: true, b: false } # hash # => { a: true, b: false } # { c: true }.compact! # => nil def compact! reject! { |_, value| value.nil? } end end end
Version data entries
49 entries across 49 versions & 8 rubygems