Module: Vendor::Colrapi
- Defined in:
- lib/vendor/colrapi.rb
Overview
A middle-layer wrapper between Colrapi and TaxonWorks
Constant Summary collapse
- DATASETS =
{ col: '3LR' }.freeze
Class Method Summary collapse
-
.align_classification(taxonworks_object, colrapi_result) ⇒ Array
2 row alignment facilitator.
-
.collection_object_scientific_name(collection_object) ⇒ Object
Extend to buffered with GNA in middle layer? Text only, taxon name cached or OTU name for the most recent determination.
-
.name_status(taxonworks_object, colrapi_result) ⇒ Object
}, accepted: {} } ] }.
Class Method Details
.align_classification(taxonworks_object, colrapi_result) ⇒ Array
2 row alignment facilitator
26 27 28 |
# File 'lib/vendor/colrapi.rb', line 26 def self.align_classification(taxonworks_object, colrapi_result) r = [] end |
.collection_object_scientific_name(collection_object) ⇒ Object
Extend to buffered with GNA in middle layer? Text only, taxon name cached or OTU name for the most recent determination
88 89 90 91 92 93 94 95 96 97 98 99 |
# File 'lib/vendor/colrapi.rb', line 88 def self.collection_object_scientific_name(collection_object) return nil if collection_object.nil? if a = collection_object.taxon_determinations.order(:position)&.first if a.otu.taxon_name a.otu.taxon_name.cached else a.otu.name end else nil end end |
.name_status(taxonworks_object, colrapi_result) ⇒ Object
},
accepted: {}
}
]
}
45 46 47 48 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 77 78 79 80 81 82 |
# File 'lib/vendor/colrapi.rb', line 45 def self.name_status(taxonworks_object, colrapi_result) o = taxonworks_object r = { taxonworks_name: collection_object_scientific_name(o), col_usages: [], provisional_status: :accepted, } if colrapi_result.dig('total') == 0 r[:provisional_status] = :undeterminable return r end colrapi_result['result'].each do |u| i = u['usage'] d = { usage: {}, accepted: {} } d[:usage][:name] = i.dig *%w{name scientificName} d[:usage][:status] = i['status'] if i['accepted'] d[:accepted][:name] = i.dig *%w{accepted name scientificName} d[:accepted][:status] = i.dig *%w{accepted status} end if d[:usage][:status] == 'synonym' && (d[:usage][:name] == r[:taxonworks_name]) r[:provisional_status] = :synonym end r[:col_usages].push d end r end |