Sha256: 585130c45395f84f6f7ce7f1ed58542b4d0b65f0c363ba1d8d1d561c5cbfcf51

Contents?: true

Size: 563 Bytes

Versions: 12

Compression:

Stored size: 563 Bytes

Contents

module Ufo::Utils
  class Squeezer
    def initialize(data)
      @data = data
    end

    def squeeze(new_data=nil)
      data = new_data.nil? ? @data : new_data

      case data
      when Array
        data.map! { |v| squeeze(v) }
      when Hash
        data.each_with_object({}) do |(k,v), squeezed|
          # only remove nil and empty Array values within Hash structures
          squeezed[k] = squeeze(v) unless v.nil? # || v.is_a?(Array) && v.empty?
          squeezed
        end
      else
        data # do not transform
      end
    end
  end
end

Version data entries

12 entries across 12 versions & 1 rubygems

Version Path
ufo-6.1.1 lib/ufo/utils/squeezer.rb
ufo-6.1.0 lib/ufo/utils/squeezer.rb
ufo-6.0.9 lib/ufo/utils/squeezer.rb
ufo-6.0.8 lib/ufo/utils/squeezer.rb
ufo-6.0.7 lib/ufo/utils/squeezer.rb
ufo-6.0.6 lib/ufo/utils/squeezer.rb
ufo-6.0.5 lib/ufo/utils/squeezer.rb
ufo-6.0.4 lib/ufo/utils/squeezer.rb
ufo-6.0.3 lib/ufo/utils/squeezer.rb
ufo-6.0.2 lib/ufo/utils/squeezer.rb
ufo-6.0.1 lib/ufo/utils/squeezer.rb
ufo-6.0.0 lib/ufo/utils/squeezer.rb