Sha256: 2a4d0d33cd242461d32d9dbcde6264b4dda44021ff4fb7ccaaf8774cb0f86a81

Contents?: true

Size: 1.65 KB

Versions: 18

Compression:

Stored size: 1.65 KB

Contents

require 'gorillib/object/blank'
module Gorillib
  module Hashlike
    module Compact

      # returns a compact!ed copy (contains no key/value pairs having nil? values)
      #
      # @example
      #     hsh = { :a => 100, :b => nil, :c => false, :d => "" }
      #     hsh.compact # => { :a => 100, :c => false, :d => "" }
      #     hsh         # => { :a => 100, :b => nil, :c => false, :d => "" }
      #
      # @return [Hashlike]
      #
      def compact
        reject{|key,val| val.nil? }
      end

      # Removes all key/value pairs having nil? values
      #
      # @example
      #     hsh = { :a => 100, :b => nil, :c => false, :d => "" }
      #     hsh.compact # => { :a => 100, :c => false, :d => "" }
      #     hsh         # => { :a => 100, :c => false, :d => "" }
      #
      # @return [Hashlike]
      #
      def compact!
        delete_if{|key,val| val.nil? }
      end

      # returns a compact!ed copy (contains no key/value pairs having blank? values)
      #
      # @example
      #     hsh = { :a => 100, :b => nil, :c => false, :d => "" }
      #     hsh.compact # => { :a => 100 }
      #     hsh         # => { :a => 100, :b => nil, :c => false, :d => "" }
      #
      # @return [Hashlike]
      #
      def compact_blank
        reject{|key,val| val.blank? }
      end

      # Removes all key/value pairs having blank? values
      #
      # @example
      #     hsh = { :a => 100, :b => nil, :c => false, :d => "" }
      #     hsh.compact # => { :a => 100 }
      #     hsh         # => { :a => 100 }
      #
      # @return [Hashlike]
      #
      def compact_blank!
        delete_if{|key,val| val.blank? }
      end

    end
  end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
gorillib-0.6.0 lib/gorillib/hashlike/compact.rb
gorillib-0.5.2 lib/gorillib/hashlike/compact.rb
gorillib-0.5.0 lib/gorillib/hashlike/compact.rb
gorillib-0.4.2 lib/gorillib/hashlike/compact.rb
gorillib-0.4.2pre lib/gorillib/hashlike/compact.rb
gorillib-0.4.0pre lib/gorillib/hashlike/compact.rb
gorillib-0.4.1pre lib/gorillib/hashlike/compact.rb
gorillib-0.1.11 lib/gorillib/hashlike/compact.rb
gorillib-0.1.9 lib/gorillib/hashlike/compact.rb
gorillib-0.1.8 lib/gorillib/hashlike/compact.rb
gorillib-0.1.7 lib/gorillib/hashlike/compact.rb
gorillib-0.1.6 lib/gorillib/hashlike/compact.rb
gorillib-0.1.5 lib/gorillib/hashlike/compact.rb
gorillib-0.1.4 lib/gorillib/hashlike/compact.rb
gorillib-0.1.3 lib/gorillib/hashlike/compact.rb
gorillib-0.1.2 lib/gorillib/hashlike/compact.rb
gorillib-0.1.1 lib/gorillib/hashlike/compact.rb
gorillib-0.1.0 lib/gorillib/hashlike/compact.rb