Class: TaxonNameRelationship::Iczn::Invalidating::Homonym::Secondary
Defined Under Namespace
Classes: Secondary1961
Constant Summary
collapse
- NOMEN_URI =
'http://purl.obolibrary.org/obo/NOMEN_0000291'.freeze
Class Method Summary
collapse
Instance Method Summary
collapse
disjoint_object_classes, #object_status_connector_to_subject, #subject_properties, #subject_status_connector_to_object, #sv_fix_add_synonym_for_homonym, #sv_missing_nomen_novum, #sv_missing_replacement_name, #sv_validate_priority, #sv_validate_total_suppression
assignable, disjoint_object_classes, disjoint_subject_classes, gbif_status_of_subject, nomenclatural_priority, #object_status_connector_to_subject, #similar_homonym_string, #subject_properties, #subject_status_connector_to_object
disjoint_object_classes, disjoint_subject_classes, #sv_validate_priority
Class Method Details
.assignment_method ⇒ Object
33
34
35
36
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 33
def self.assignment_method
:iczn_set_as_secondary_homonym_of
end
|
.disjoint_taxon_name_relationships ⇒ Object
.inverse_assignment_method ⇒ Object
38
39
40
41
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 38
def self.inverse_assignment_method
:iczn_secondary_homonym
end
|
.valid_object_ranks ⇒ Object
15
16
17
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 15
def self.valid_object_ranks
SPECIES_RANK_NAMES_ICZN
end
|
.valid_subject_ranks ⇒ Object
10
11
12
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 10
def self.valid_subject_ranks
SPECIES_RANK_NAMES_ICZN
end
|
Instance Method Details
#object_status ⇒ Object
25
26
27
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 25
def object_status
'senior secondary homonym'
end
|
#subject_status ⇒ Object
29
30
31
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 29
def subject_status
'secondary homonym'
end
|
#sv_combinations ⇒ Object
67
68
69
70
71
72
73
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 67
def sv_combinations
s = subject_taxon_name
o = object_taxon_name
if (s.all_generic_placements & o.all_generic_placements).empty?
soft_validations.add(:base, "No combination available showing #{s.cached_html_name_and_author_year} and #{o.cached_html_name_and_author_year} placed in the same genus")
end
end
|
#sv_fix_not_specific_relationship ⇒ Object
84
85
86
87
88
89
90
91
92
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 84
def sv_fix_not_specific_relationship
new_relationship_name = 'TaxonNameRelationship::Iczn::Invalidating::Homonym::Secondary::Secondary1961'
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
75
76
77
78
79
80
81
82
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 75
def sv_not_specific_relationship
if self.source && self.source.year < 1961
soft_validations.add(
:type, "The relationship should change to the 'Secondary homonym replaced before 1961'",
success_message: "The relationship updated to 'Secondary homonym replaced before 1961'",
failure_message: 'Failed to update the homonym relationship')
end
end
|
#sv_same_genus ⇒ Object
51
52
53
54
55
56
57
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 51
def sv_same_genus
s = subject_taxon_name
o = object_taxon_name
if s.get_valid_taxon_name.ancestor_at_rank('genus') != o.get_valid_taxon_name.ancestor_at_rank('genus')
soft_validations.add(:type, "Secondary homonyms #{s.cached_html_name_and_author_year} and #{o.cached_html_name_and_author_year} should be placed in the same parent genus, the homonymy should be deleted or changed to 'secondary homonym replaced before 1961'")
end
end
|
#sv_same_original_genus ⇒ Object
43
44
45
46
47
48
49
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 43
def sv_same_original_genus
s = subject_taxon_name
o = object_taxon_name
if !s.original_genus.nil? && s.original_genus == o.original_genus
soft_validations.add(:type, "#{s.cached_html_name_and_author_year} and #{o.cached_html_name_and_author_year} species described in the same original genus #{s.original_genus.cached_html}, they are primary homonyms")
end
end
|
#sv_specific_relationship ⇒ Object
59
60
61
62
63
64
65
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 59
def sv_specific_relationship
s = subject_taxon_name
o = object_taxon_name
if s.cached_secondary_homonym_alternative_spelling != o.cached_secondary_homonym_alternative_spelling
soft_validations.add(:type, "#{s.cached_html_name_and_author_year} and #{o.cached_html_name_and_author_year} are not similar enough to be homonyms")
end
end
|
#sv_synonym_relationship ⇒ Object
94
95
96
97
98
|
# File 'app/models/taxon_name_relationship/iczn/invalidating/homonym/secondary.rb', line 94
def sv_synonym_relationship
unless self.source
soft_validations.add(:base, 'The original publication is not selected')
end
end
|