Method: ParallelParser#parse
- Defined in:
- lib/biodiversity/parser.rb
#parse(names_list) ⇒ Object
Public: Parses an array of scientific names using several processes in parallel.
Scientific names are deduplicated in the process, so every string is parsed only once.
names_list - takes an Array of scientific names,
each element should be a String.
Examples
parser = ParallelParser.new(4) parser.parse([‘Homo sapiens L.’, ‘Quercus quercus’])
Returns a Hash with scientific names as a key, and parsing results as a value.
73 74 75 76 77 78 |
# File 'lib/biodiversity/parser.rb', line 73 def parse(names_list) parsed = Parallel.map(names_list.uniq, in_processes: @processes_num) do |n| [n, parse_process(n)] end parsed.inject({}) { |res, x| res[x[0]] = x[1]; res } end |