module Enumerable
Public Instance Methods
each_in_threads(num_threads, flatten = false) { |item| ... }
click to toggle source
# File lib/toptranslation_cli/threaded.rb, line 12 def each_in_threads(num_threads, flatten = false) in_chunks(num_threads, flatten).map do |chunk| Thread.new do chunk.each do |item| yield item end end end.each(&:join) end
in_chunks(chunks, flatten = false)
click to toggle source
# File lib/toptranslation_cli/threaded.rb, line 4 def in_chunks(chunks, flatten = false) chunk_size = [size, (size / chunks.to_f).ceil].select(&:positive?).min chunked = each_slice(chunk_size) chunked = chunked.map(&:flatten) if flatten chunked end