Sha256: e203d2eaa1da5d675af4e53a3ff3db992869326ca43283b93dca8c240dc76ffa

Contents?: true

Size: 583 Bytes

Versions: 1

Compression:

Stored size: 583 Bytes

Contents

module Lono::Builder::Dsl::Syntax::Core
  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

1 entries across 1 versions & 1 rubygems

Version Path
lono-8.0.0.pre.rc2 lib/lono/builder/dsl/syntax/core/squeezer.rb