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