Class: TaxonNameRelationship::Iczn::Invalidating::Synonym::ForgottenName
Defined Under Namespace
Classes: ForgottenName19611972
Constant Summary
collapse
- NOMEN_URI =
'http://purl.obolibrary.org/obo/NOMEN_0000284'.freeze
Class Method Summary
collapse
Instance Method Summary
collapse
disjoint_object_classes, #object_status_connector_to_subject, #subject_status_connector_to_object, #sv_synonym_relationship
assignable, disjoint_object_classes, disjoint_subject_classes, #object_status_connector_to_subject, #similar_homonym_string, #subject_properties, #subject_status_connector_to_object, #sv_synonym_relationship
disjoint_object_classes, disjoint_subject_classes, valid_object_ranks, valid_subject_ranks
Class Method Details
.assignment_method ⇒ Object
31
32
33
34
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 31
def self.assignment_method
:iczn_set_as_forgotten_name_of
end
|
.disjoint_taxon_name_relationships ⇒ Object
.gbif_status_of_subject ⇒ Object
23
24
25
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 23
def self.gbif_status_of_subject
'oblitum'
end
|
.inverse_assignment_method ⇒ Object
37
38
39
40
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 37
def self.inverse_assignment_method
:iczn_forgotten_name
end
|
.nomenclatural_priority ⇒ Object
27
28
29
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 27
def self.nomenclatural_priority
:reverse
end
|
Instance Method Details
#object_status ⇒ Object
15
16
17
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 15
def object_status
'nomen protectum'
end
|
#subject_status ⇒ Object
19
20
21
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 19
def subject_status
'nomen oblitum'
end
|
#sv_fix_not_specific_relationship ⇒ Object
68
69
70
71
72
73
74
75
76
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 68
def sv_fix_not_specific_relationship
new_relationship_name = 'TaxonNameRelationship::Iczn::Invalidating::Synonym::ForgottenName::ForgottenName19611972'
if new_relationship_name && self.type_name != new_relationship_name
self.type = new_relationship_name
self.save
return true
end
false
end
|
#sv_not_specific_relationship ⇒ Object
57
58
59
60
61
62
63
64
65
66
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 57
def sv_not_specific_relationship
d = self&.origin_citation&.source&.cached_nomenclature_date
return true if d.nil?
if d >= Date.parse('1961-11-06') && d <= Date.parse('1973-01-01')
soft_validations.add(
:type, "The relationship should change to the 'Nomen oblitum rejected between 6 November 1961 and 1 January 1973'",
success_message: "The relationship updated to 'Nomen oblitum rejected between 6 November 1961 and 1 January 1973'",
failure_message: 'Failed to update the nomen oblitum relationship')
end
end
|
#sv_source_after_1999 ⇒ Object
42
43
44
45
46
47
48
49
50
51
52
53
54
55
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 42
def sv_source_after_1999
s = subject_taxon_name
d = self&.origin_citation&.source&.cached_nomenclature_date
return true if d.nil? || self.type != 'TaxonNameRelationship::Iczn::Invalidating::Synonym::ForgottenName'
if d < Date.parse('2000-01-01')
soft_validations.add(:type, "#{s.cached_html_name_and_author_year} was rejected before 2000")
else
o = object_taxon_name
d1 = s&.origin_citation&.source&.cached_nomenclature_date
d2 = o&.origin_citation&.source&.cached_nomenclature_date
soft_validations.add(:subject_taxon_name_id, "#{s.cached_html_name_and_author_year} as <i>nomen oblitum</i> was not described before 1900") if d1 && d1 > Date.parse('1900-01-01')
end
end
|
#sv_validate_priority ⇒ Object
78
79
80
81
82
83
84
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/synonym/forgotten_name.rb', line 78
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 #{self.object_taxon_name.cached_html_name_and_author_year}")
end
end
|