module Datadog::Chunker
Chunks list of elements into batches
Public Instance Methods
chunk_by_size(list, max_chunk_size)
click to toggle source
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
# File lib/ddtrace/chunker.rb, line 19 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