Module: TaxonWorks::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
27 28 29 |
# File 'lib/vendor/colrapi.rb', line 27 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
89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/vendor/colrapi.rb', line 89 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: {}
}
]
}
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 83 |
# File 'lib/vendor/colrapi.rb', line 46 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 |