Top Level Namespace
Defined Under Namespace
Modules: PreProcessor
Classes: LsidResolver, ScientificNameParser
Constant Summary
collapse
- BIODIVERSITY_ROOT =
File.join(dir, 'biodiversity')
- DEFAULT_PORT =
4334
- RUBY_VERSION_INT =
RUBY_VERSION.split(".")[0..1].join('').to_i
- OPTIONS =
{
:output => "json",
:port => DEFAULT_PORT
}
Instance Method Summary
collapse
Instance Method Details
#get_output(name_string, parser) ⇒ Object
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
|
# File 'bin/parserver', line 49
def get_output(name_string, parser)
begin
if RUBY_VERSION_INT < 19
old_kcode = $KCODE
$KCODE = 'NONE'
end
parsed = parser.parse(name_string)
if RUBY_VERSION_INT < 19
$KCODE = old_kcode
end
rescue
parsed = parser_error(name_string)
end
output = OPTIONS[:output]
return parsed.to_json if output == 'json'
canonical = parsed[:scientificName][:canonical]
return canonical.to_s if output == 'canonical' || canonical == nil || parsed[:scientificName][:hybrid] || !parsed[:scientificName][:parsed]
parts = parsed[:scientificName][:canonical].split(" ")
if parts.size > 2 && parsed[:scientificName][:details][0][:infraspecies]
name_ary = parts[0..1]
parsed[:scientificName][:details][0][:infraspecies].each do |data|
name_ary << (data[:rank] && data[:rank] != 'n/a'? "#{data[:rank]} #{data[:string]}" : data[:string])
end
canonical = name_ary.join(" ")
end
canonical
end
|
#parser_error(name_string) ⇒ Object
16
17
18
|
# File 'bin/nnparse', line 16
def parser_error(name)
{'scientificName' => {'parsed' => false, 'verbatim' => name, 'error' => 'Parser error'}}.to_json
end
|