Class: Autoselect::AssertedEnvironment::Levels::Envo
- Inherits:
-
Level
- Object
- Level
- Autoselect::AssertedEnvironment::Levels::Envo
show all
- Defined in:
- lib/autoselect/asserted_environment/levels/envo.rb
Overview
External level: searches the Environment Ontology (ENVO) via
Vendor::Envo (identical mechanism to AnatomicalPart's use of Hookkaido,
but hardcoded to the envo ontology - see Vendor::Envo). Results are
pseudo-records (OpenStruct, id: nil) - see
Autoselect::AssertedEnvironment::Autoselect#response_values for how
selecting one is turned into a new AssertedEnvironment.
Constant Summary
Constants inherited
from Level
Level::DEFAULT_FUSE_MS, Level::EXTERNAL_FUSE_MS, Level::MINIMUM_RESULTS
Instance Method Summary
collapse
Methods inherited from Level
#fuse_ms, #metadata, #minimum_results, #model_key, #record_info_html
Instance Method Details
#call(term:, operator: nil, project_id: nil, user_id: nil, **_kwargs) ⇒ Array<OpenStruct>
Returns pseudo-records with uri/uri_label set from
the ENVO search result.
32
33
34
35
36
37
38
|
# File 'lib/autoselect/asserted_environment/levels/envo.rb', line 32
def call(term:, operator: nil, project_id: nil, user_id: nil, **_kwargs)
return [] if term.blank?
::Vendor::Envo.search(term)[:results].map do |r|
OpenStruct.new(id: nil, uri: r[:iri], uri_label: r[:label], description: r[:description])
end
end
|
#description ⇒ Object
21
22
23
|
# File 'lib/autoselect/asserted_environment/levels/envo.rb', line 21
def description
'Search the Environment Ontology (ENVO) for matching terms'
end
|
#external? ⇒ Boolean
25
26
27
|
# File 'lib/autoselect/asserted_environment/levels/envo.rb', line 25
def external?
true
end
|
#key ⇒ Object
13
14
15
|
# File 'lib/autoselect/asserted_environment/levels/envo.rb', line 13
def key
:envo
end
|
#label ⇒ Object
17
18
19
|
# File 'lib/autoselect/asserted_environment/levels/envo.rb', line 17
def label
'ENVO'
end
|
#record_info(record) ⇒ Object
50
51
52
|
# File 'lib/autoselect/asserted_environment/levels/envo.rb', line 50
def record_info(record)
[::Vendor::Envo.local_id(record.uri)]
end
|
#record_label(record) ⇒ Object
Pseudo-records, so render directly rather than via the label_for_/
_autoselect_tag helper delegation (see Autoselect::Level docs).
42
43
44
|
# File 'lib/autoselect/asserted_environment/levels/envo.rb', line 42
def record_label(record)
record.uri_label.to_s
end
|
#record_label_html(record, term = nil) ⇒ Object
46
47
48
|
# File 'lib/autoselect/asserted_environment/levels/envo.rb', line 46
def record_label_html(record, term = nil)
record.description.present? ? "#{record.uri_label}: #{record.description}" : record.uri_label.to_s
end
|