Sha256: 09c6a74a41c12d12e6ebe8cbac355cb97484dfd1d84752ddcecf67e83bb18c8b

Contents?: true

Size: 816 Bytes

Versions: 20

Compression:

Stored size: 816 Bytes

Contents

require 'json'

module Logtail
  module Util
    # @private
    #
    # The purpose of this class is to efficiently build a hash that does not
    # include nil values. It's proactive instead of reactive, avoiding the
    # need to traverse and reduce a new hash dropping blanks.
    class NonNilHashBuilder
      class << self
        def build(&block)
          builder = new
          yield builder
          builder.target
        end
      end

      attr_reader :target

      def initialize
        @target = {}
      end

      def add(k, v, options = {})
        if !v.nil?
          if options[:json_encode]
            v = v.to_json
          end

          if options[:limit]
            v = v.byteslice(0, options[:limit])
          end

          @target[k] = v
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 2 rubygems

Version Path
logtail-0.1.15 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.14 lib/logtail/util/non_nil_hash_builder.rb
logtail-ruby-0.1.3 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.13 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.12 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.11 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.10 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.9 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.8 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.7 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.6 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.5 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.4 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.3 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.2 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.1 lib/logtail/util/non_nil_hash_builder.rb
logtail-0.1.0 lib/logtail/util/non_nil_hash_builder.rb
logtail-ruby-0.1.2 lib/logtail/util/non_nil_hash_builder.rb
logtail-ruby-0.1.1 lib/logtail/util/non_nil_hash_builder.rb
logtail-ruby-0.1.0 lib/logtail/util/non_nil_hash_builder.rb