Sha256: d3cf0883aa484965db142a93ff169810f3fa870f401980537a3a4696f75c6a77
Contents?: true
Size: 1011 Bytes
Versions: 2
Compression:
Stored size: 1011 Bytes
Contents
module Datadog module Core # Chunks list of elements into batches module Chunker module_function # Chunks a list into batches of at most +max_chunk_size+ elements each. # # An exception can occur if a single element is too large. That single # element will be returned in its own chunk. You have to verify by yourself # when such elements are returned. # # @param list [Enumerable] list of elements # @param max_chunk_size [Numeric] maximum acceptable chunk size # @return [Enumerable] lazy list of chunks def chunk_by_size(list, max_chunk_size) chunk_agg = 0 list.slice_before do |elem| size = elem.size chunk_agg += size if chunk_agg > max_chunk_size # Can't fit element in current chunk, start a new one. chunk_agg = size true else # Add to current chunk false end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
ddtrace-1.10.1 | lib/datadog/core/chunker.rb |
ddtrace-1.10.0 | lib/datadog/core/chunker.rb |