Class: TaxonNameRelationship::Typification::Family
Class Method Summary
collapse
Instance Method Summary
collapse
disjoint_classes, disjoint_object_classes, disjoint_subject_classes, nomenclatural_priority, #object_status_connector_to_subject, #subject_status_connector_to_object, #sv_coordinated_taxa_object, #sv_specific_relationship
Class Method Details
.assignable ⇒ Object
38
39
40
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 38
def self.assignable
true
end
|
.assignment_method ⇒ Object
30
31
32
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 30
def self.assignment_method
:type_of_family
end
|
.disjoint_taxon_name_relationships ⇒ Object
17
18
19
20
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 17
def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
self.collect_descendants_and_itself_to_s(TaxonNameRelationship::Typification::Genus)
end
|
.inverse_assignment_method ⇒ Object
34
35
36
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 34
def self.inverse_assignment_method
:type_genus
end
|
.valid_object_ranks ⇒ Object
13
14
15
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 13
def self.valid_object_ranks
FAMILY_RANK_NAMES
end
|
.valid_subject_ranks ⇒ Object
8
9
10
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 8
def self.valid_subject_ranks
GENUS_RANK_NAMES
end
|
Instance Method Details
#object_status ⇒ Object
22
23
24
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 22
def object_status
'type of family'
end
|
#subject_status ⇒ Object
26
27
28
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 26
def subject_status
'type genus'
end
|
#sv_matching_type_genus ⇒ Object
49
50
51
52
53
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 49
def sv_matching_type_genus
if self.object_taxon_name.name.slice(0, 1) != self.subject_taxon_name.name.slice(0, 1)
soft_validations.add(:object_taxon_name_id, "The type genus #{self.subject_taxon_name.cached_html_name_and_author_year} should have the same initial letters as the family-group name #{self.object_taxon_name.cached_html_name_and_author_year}")
end
end
|
#validate_subject_and_object_ranks ⇒ Object
44
45
46
47
|
# File 'app/models/taxon_name_relationship/typification/family.rb', line 44
def validate_subject_and_object_ranks
errors.add(:subject_taxon_name_id, 'Subject should be genus-group name') if subject_taxon_name && !subject_taxon_name.is_genus_rank?
errors.add(:object_taxon_name_id, 'Object should be family-group name') if object_taxon_name && !object_taxon_name.is_family_rank?
end
|