Module: Enumerable
- Defined in:
- lib/toptranslation_cli/threaded.rb
Instance Method Summary collapse
- #each_in_threads(num_threads, flatten = false) ⇒ Object
- #in_chunks(chunks, flatten = false) ⇒ Object
Instance Method Details
#each_in_threads(num_threads, flatten = false) ⇒ Object
12 13 14 15 16 17 18 19 20 |
# 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) ⇒ Object
4 5 6 7 8 9 10 |
# 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 |