Sha256: adc615b42b240a17065616e459c13889f33a32300ba5c7a64c26df53402a315b

Contents?: true

Size: 574 Bytes

Versions: 92

Compression:

Stored size: 574 Bytes

Contents

module EasyML
  module CoreExt
    module Hash
      def deep_compact
        each_with_object({}) do |(key, value), result|
          next if value.nil?

          compacted = if value.is_a?(Hash)
              value.deep_compact
            elsif value.is_a?(Array)
              value.map { |v| v.is_a?(Hash) ? v.deep_compact : v }.compact
            else
              value
            end

          result[key] = compacted unless compacted.blank?
        end
      end
    end
  end
end

# Extend Hash class with our custom method
Hash.include EasyML::CoreExt::Hash

Version data entries

92 entries across 92 versions & 1 rubygems

Version Path
easy_ml-0.2.0.pre.rc105 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc104 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc103 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc102 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc101 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc100 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc99 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc98 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc97 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc96 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc95 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc94 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc93 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc92 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc91 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc90 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc89 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc88 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc85 lib/easy_ml/core_ext/hash.rb
easy_ml-0.2.0.pre.rc84 lib/easy_ml/core_ext/hash.rb