Class: TaxonNameRelationship::Combination
- Inherits:
-
TaxonNameRelationship
- Object
- TaxonNameRelationship
- TaxonNameRelationship::Combination
show all
- Defined in:
- app/models/taxon_name_relationship/combination.rb
Overview
The class relationships used to create Combinations.
Direct Known Subclasses
Family, Form, Genus, Section, Series, Species, Subform, Subgenus, Subsection, Subseries, Subspecies, Subvariety, Variety
Defined Under Namespace
Classes: Family, Form, Genus, Section, Series, Species, Subform, Subgenus, Subsection, Subseries, Subspecies, Subvariety, Variety
Class Method Summary
collapse
Instance Method Summary
collapse
Class Method Details
.nomenclatural_priority ⇒ Object
def self.disjoint_object_classes
self.disjoint_classes
end
30
31
32
|
# File 'app/models/taxon_name_relationship/combination.rb', line 30
def self.nomenclatural_priority
:reverse
end
|
.order_index ⇒ Integer?
14
15
16
|
# File 'app/models/taxon_name_relationship/combination.rb', line 14
def self.order_index
RANKS.index(::ICN_LOOKUP[self.name.demodulize.underscore.humanize.downcase])
end
|
.rank_name ⇒ String
Returns the human readable rank this relationship pertains to.
36
37
38
|
# File 'app/models/taxon_name_relationship/combination.rb', line 36
def self.rank_name
name.demodulize.humanize.downcase
end
|
Instance Method Details
#object_status ⇒ String
Returns the status inferred by the relationship to the object name.
46
47
48
|
# File 'app/models/taxon_name_relationship/combination.rb', line 46
def object_status
rank_name + ' in combination'
end
|
#object_status_connector_to_subject ⇒ String
62
63
64
|
# File 'app/models/taxon_name_relationship/combination.rb', line 62
def object_status_connector_to_subject
' with'
end
|
#rank_name ⇒ Object
40
41
42
|
# File 'app/models/taxon_name_relationship/combination.rb', line 40
def rank_name
type_name.demodulize.humanize.downcase
end
|
#set_cached_names_for_taxon_names ⇒ Object
68
69
70
71
72
73
|
# File 'app/models/taxon_name_relationship/combination.rb', line 68
def set_cached_names_for_taxon_names
t = object_taxon_name
return true if t.destroyed? t.send(:set_cached)
true
end
|
#subject_is_protonym ⇒ Object
75
76
77
|
# File 'app/models/taxon_name_relationship/combination.rb', line 75
def subject_is_protonym
errors.add(:subject_taxon_name, 'Must be a protonym') if subject_taxon_name.type == 'Combination'
end
|
#subject_status ⇒ String
Returns the status inferred by the relationship to the subject name.
52
53
54
|
# File 'app/models/taxon_name_relationship/combination.rb', line 52
def subject_status
' as ' + rank_name + ' in combination'
end
|
#subject_status_connector_to_object ⇒ String
57
58
59
|
# File 'app/models/taxon_name_relationship/combination.rb', line 57
def subject_status_connector_to_object
''
end
|
#sv_coordinated_taxa_object ⇒ Object
87
88
89
|
# File 'app/models/taxon_name_relationship/combination.rb', line 87
def sv_coordinated_taxa_object
true end
|
#sv_validate_priority ⇒ Object
79
80
81
82
83
84
85
|
# File 'app/models/taxon_name_relationship/combination.rb', line 79
def sv_validate_priority
date1 = self.subject_taxon_name.cached_nomenclature_date
date2 = self.object_taxon_name.cached_nomenclature_date
if !!date1 && !!date2 && date1 > date2 && subject_invalid_statuses.empty?
soft_validations.add(:type, "#{self.subject_status.capitalize} #{self.subject_taxon_name.cached_html_name_and_author_year} should not be younger than citation (#{self.object_taxon_name.source&.author_year}) of #{self.object_taxon_name.cached_html_name_and_author_year}")
end
end
|