Class: ParallelParser
- Inherits:
-
Object
- Object
- ParallelParser
- Defined in:
- lib/biodiversity/parser.rb
Instance Method Summary collapse
- #cpu_num ⇒ Object
-
#initialize(processes_num = nil) ⇒ ParallelParser
constructor
A new instance of ParallelParser.
- #parse(names_list) ⇒ Object
Constructor Details
#initialize(processes_num = nil) ⇒ ParallelParser
Returns a new instance of ParallelParser.
28 29 30 31 32 33 34 35 36 |
# File 'lib/biodiversity/parser.rb', line 28 def initialize(processes_num = nil) require 'parallel' cpu_num if processes_num.to_i > 0 @processes_num = [processes_num, cpu_num - 1].min else @processes_num = cpu_num > 3 ? cpu_num - 2 : 1 end end |
Instance Method Details
#cpu_num ⇒ Object
43 44 45 |
# File 'lib/biodiversity/parser.rb', line 43 def cpu_num @cpu_num ||= Parallel.processor_count end |
#parse(names_list) ⇒ Object
38 39 40 41 |
# File 'lib/biodiversity/parser.rb', line 38 def parse(names_list) parsed = Parallel.map(names_list.uniq, :in_processes => @processes_num) { |n| [n, parse_process(n)] } parsed.inject({}) { |res, x| res[x[0]] = x[1]; res } end |