Skip to content

Commit

Permalink
Extract Method
Browse files Browse the repository at this point in the history
Common subexpressions in the implementation of disjoint_taxon_name_relationships class method of TaxonNameRelationship's children classes have been extracted into collect_to_s, collect_descendants_to_s and collect_descendants_and_itself_to_s class methods at TaxonNameRelationship class.
  • Loading branch information
LocoDelAssembly committed Jan 21, 2014
1 parent 0fd0567 commit a609595
Show file tree
Hide file tree
Showing 54 changed files with 204 additions and 197 deletions.
14 changes: 14 additions & 0 deletions app/models/taxon_name_relationship.rb
Expand Up @@ -407,4 +407,18 @@ def sv_validate_priority

#endregion

private
def self.collect_to_s(*args)
args.collect{|arg| arg.to_s}
end
def self.collect_descendants_to_s(*classes)
ans = []
classes.each do |klass|
ans += klass.descendants.collect{|k| k.to_s}
end
ans
end
def self.collect_descendants_and_itself_to_s(*classes)
classes.collect{|k| k.to_s} + self.collect_descendants_to_s(*classes)
end
end
11 changes: 6 additions & 5 deletions app/models/taxon_name_relationship/combination.rb
Expand Up @@ -3,11 +3,12 @@ class TaxonNameRelationship::Combination < TaxonNameRelationship
validates_uniqueness_of :object_taxon_name_id, scope: :type

def self.disjoint_taxon_name_relationships
TaxonNameRelationship::Iczn.descendants.collect{|t| t.to_s} +
TaxonNameRelationship::Icn.descendants.collect{|t| t.to_s} +
TaxonNameRelationship::OriginalCombination.descendants.collect{|t| t.to_s} +
TaxonNameRelationship::Typification.descendants.collect{|t| t.to_s} +
[TaxonNameRelationship::SourceClassifiedAs.to_s]
self.collect_descendants_to_s(
TaxonNameRelationship::Iczn,
TaxonNameRelationship::Icn,
TaxonNameRelationship::OriginalCombination,
TaxonNameRelationship::Typification) + self.collect_to_s(
TaxonNameRelationship::SourceClassifiedAs)
end

def self.disjoint_subject_classes
Expand Down
5 changes: 3 additions & 2 deletions app/models/taxon_name_relationship/icn.rb
Expand Up @@ -12,8 +12,9 @@ def self.valid_object_ranks
end

def self.disjoint_taxon_name_relationships
TaxonNameRelationship::Iczn.descendants.collect{|t| t.to_s} +
TaxonNameRelationship::Combination.descendants.collect{|t| t.to_s}
self.collect_descendants_to_s(
TaxonNameRelationship::Iczn,
TaxonNameRelationship::Combination)
end

def self.disjoint_subject_classes
Expand Down
5 changes: 2 additions & 3 deletions app/models/taxon_name_relationship/icn/accepting.rb
Expand Up @@ -2,9 +2,8 @@ class TaxonNameRelationship::Icn::Accepting < TaxonNameRelationship::Icn


def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting.to_s] +
TaxonNameRelationship::Icn::Unaccepting.descendants.collect{|t| t.to_s}
self.parent.disjoint_taxon_name_relationships + self.collect_descendants_and_itself_to_s(
TaxonNameRelationship::Icn::Unaccepting)
end

def self.disjoint_subject_classes
Expand Down
4 changes: 2 additions & 2 deletions app/models/taxon_name_relationship/icn/unaccepting.rb
@@ -1,8 +1,8 @@
class TaxonNameRelationship::Icn::Unaccepting < TaxonNameRelationship::Icn

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
TaxonNameRelationship::Icn::Accepting.descendants.collect{|t| t.to_s}
self.parent.disjoint_taxon_name_relationships + self.collect_descendants_to_s(
TaxonNameRelationship::Icn::Accepting)
end

def self.disjoint_object_classes
Expand Down
6 changes: 3 additions & 3 deletions app/models/taxon_name_relationship/icn/unaccepting/homonym.rb
@@ -1,9 +1,9 @@
class TaxonNameRelationship::Icn::Unaccepting::Homonym < TaxonNameRelationship::Icn::Unaccepting

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting.to_s] +
TaxonNameRelationship::Icn::Unaccepting::Usage.descendants.collect{|t| t.to_s}
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting) + self.collect_descendants_to_s(
TaxonNameRelationship::Icn::Unaccepting::Usage)
end

def self.disjoint_subject_classes
Expand Down
@@ -1,9 +1,9 @@
class TaxonNameRelationship::Icn::Unaccepting::Rejected < TaxonNameRelationship::Icn::Unaccepting

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting.to_s] +
TaxonNameRelationship::Icn::Unaccepting::Usage.descendants.collect{|t| t.to_s}
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting) + self.collect_descendants_to_s(
TaxonNameRelationship::Icn::Unaccepting::Usage)
end

def self.disjoint_subject_classes
Expand Down
6 changes: 3 additions & 3 deletions app/models/taxon_name_relationship/icn/unaccepting/synonym.rb
@@ -1,9 +1,9 @@
class TaxonNameRelationship::Icn::Unaccepting::Synonym < TaxonNameRelationship::Icn::Unaccepting

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting.to_s] +
TaxonNameRelationship::Icn::Unaccepting::Usage.descendants.collect{|t| t.to_s}
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting) + self.collect_descendants_to_s(
TaxonNameRelationship::Icn::Unaccepting::Usage)
end

def self.subject_relationship_name
Expand Down
@@ -1,9 +1,9 @@
class TaxonNameRelationship::Icn::Unaccepting::Synonym::Heterotypic < TaxonNameRelationship::Icn::Unaccepting::Synonym

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting::Synonym.to_s] +
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic.descendants.collect{|t| t.to_s}
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting::Synonym) + self.collect_descendants.to_s(
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic)
end

def self.subject_relationship_name
Expand Down
@@ -1,9 +1,9 @@
class TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic < TaxonNameRelationship::Icn::Unaccepting::Synonym

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting::Synonym.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Heterotypic.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting::Synonym,
TaxonNameRelationship::Icn::Unaccepting::Synonym::Heterotypic)
end

def self.subject_relationship_name
Expand Down
@@ -1,10 +1,10 @@
class TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::AlternativeName < TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::Isonym.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::OrthographicVariant.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic,
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::Isonym,
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::OrthographicVariant)
end

def self.subject_relationship_name
Expand Down
@@ -1,10 +1,10 @@
class TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::Isonym < TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::AlternativeName.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::OrthographicVariant.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic,
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::AlternativeName,
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::OrthographicVariant)
end

def self.subject_relationship_name
Expand Down
@@ -1,10 +1,10 @@
class TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::OrthographicVariant < TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::AlternativeName.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::Isonym.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic,
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::AlternativeName,
TaxonNameRelationship::Icn::Unaccepting::Synonym::Homotypic::Isonym)
end

def self.subject_relationship_name
Expand Down
11 changes: 5 additions & 6 deletions app/models/taxon_name_relationship/icn/unaccepting/usage.rb
@@ -1,12 +1,11 @@
class TaxonNameRelationship::Icn::Unaccepting::Usage < TaxonNameRelationship::Icn::Unaccepting

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting.to_s] +
TaxonNameRelationship::Icn::Unaccepting::Synonym.descendants.collect{|t| t.to_s} +
[TaxonNameRelationship::Icn::Unaccepting::Homonym.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Synonym.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Rejected.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting,
TaxonNameRelationship::Icn::Unaccepting::Homonym,
TaxonNameRelationship::Icn::Unaccepting::Rejected) + self.collect_descendants_and_itself_to_s(
TaxonNameRelationship::Icn::Unaccepting::Synonym)
end

end
@@ -1,9 +1,9 @@
class TaxonNameRelationship::Icn::Unaccepting::Usage::Basionym < TaxonNameRelationship::Icn::Unaccepting::Usage

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting::Usage::Misspelling.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Usage::Misapplication.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting::Usage::Misspelling,
TaxonNameRelationship::Icn::Unaccepting::Usage::Misapplication)
end

def self.disjoint_subject_classes
Expand Down
@@ -1,9 +1,9 @@
class TaxonNameRelationship::Icn::Unaccepting::Usage::Misapplication < TaxonNameRelationship::Icn::Unaccepting::Usage

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting::Usage::Basionym.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Usage::Misspelling.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting::Usage::Basionym,
TaxonNameRelationship::Icn::Unaccepting::Usage::Misspelling)
end

def self.disjoint_subject_classes
Expand Down
@@ -1,9 +1,9 @@
class TaxonNameRelationship::Icn::Unaccepting::Usage::Misspelling < TaxonNameRelationship::Icn::Unaccepting::Usage

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Icn::Unaccepting::Usage::Basionym.to_s] +
[TaxonNameRelationship::Icn::Unaccepting::Usage::Misapplication.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Icn::Unaccepting::Usage::Basionym,
TaxonNameRelationship::Icn::Unaccepting::Usage::Misapplication)
end

def self.disjoint_subject_classes
Expand Down
5 changes: 3 additions & 2 deletions app/models/taxon_name_relationship/iczn.rb
Expand Up @@ -12,8 +12,9 @@ def self.valid_object_ranks
end

def self.disjoint_taxon_name_relationships
TaxonNameRelationship::Icn.descendants.collect{|t| t.to_s} +
TaxonNameRelationship::Combination.descendants.collect{|t| t.to_s}
self.collect_descendants_to_s(
TaxonNameRelationship::Icn,
TaxonNameRelationship::Combination)
end

def self.disjoint_subject_classes
Expand Down
5 changes: 2 additions & 3 deletions app/models/taxon_name_relationship/iczn/invalidating.rb
@@ -1,9 +1,8 @@
class TaxonNameRelationship::Iczn::Invalidating < TaxonNameRelationship::Iczn

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
TaxonNameRelationship::Iczn::Validating.descendants.collect{|t| t.to_s} +
[TaxonNameRelationship::Iczn::Validating.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_descendants_and_itself_to_s(
TaxonNameRelationship::Iczn::Validating)
end

def self.disjoint_subject_classes
Expand Down
@@ -1,11 +1,10 @@
class TaxonNameRelationship::Iczn::Invalidating::Homonym < TaxonNameRelationship::Iczn::Invalidating

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
TaxonNameRelationship::Iczn::Invalidating::Synonym.descendants.collect{|t| t.to_s} +
[TaxonNameRelationship::Iczn::Invalidating::Synonym.to_s] +
TaxonNameRelationship::Iczn::Invalidating::Usage.descendants.collect{|t| t.to_s}
[TaxonNameRelationship::Iczn::Invalidating.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_descendants_and_itself_to_s(
TaxonNameRelationship::Iczn::Invalidating::Synonym) + self.collect_descendants_to_s(
TaxonNameRelationship::Iczn::Invalidating::Usage) + self.collect_to_s(
TaxonNameRelationship::Iczn::Invalidating)
end

def self.disjoint_object_classes
Expand Down
Expand Up @@ -12,10 +12,9 @@ def self.valid_object_ranks


def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
TaxonNameRelationship::Iczn::Invalidating::Homonym::Secondary.descendants.collect{|t| t.to_s} +
[TaxonNameRelationship::Iczn::Invalidating::Homonym::Secondary.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Homonym.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_descendants_and_itself_to_s(
TaxonNameRelationship::Iczn::Invalidating::Homonym::Secondary) + self.collect_to_s(
TaxonNameRelationship::Iczn::Invalidating::Homonym)
end

def self.subject_relationship_name
Expand Down
Expand Up @@ -11,9 +11,9 @@ def self.valid_object_ranks
end

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Iczn::Invalidating::Homonym.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Homonym::Primary.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Iczn::Invalidating::Homonym,
TaxonNameRelationship::Iczn::Invalidating::Homonym::Primary)
end

def self.subject_relationship_name
Expand Down
@@ -1,8 +1,8 @@
class TaxonNameRelationship::Iczn::Invalidating::Homonym::Secondary::Secondary1961 < TaxonNameRelationship::Iczn::Invalidating::Homonym::Secondary

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Iczn::Invalidating::Homonym::Secondary.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Iczn::Invalidating::Homonym::Secondary)
end

def self.subject_relationship_name
Expand Down
@@ -1,11 +1,10 @@
class TaxonNameRelationship::Iczn::Invalidating::Synonym < TaxonNameRelationship::Iczn::Invalidating

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
TaxonNameRelationship::Iczn::Invalidating::Usage.descendants.collect{|t| t.to_s} +
TaxonNameRelationship::Iczn::Invalidating::Homonym.descendants.collect{|t| t.to_s} +
[TaxonNameRelationship::Iczn::Invalidating::Homonym.to_s] +
[TaxonNameRelationship::Iczn::Invalidating.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_descendants_to_s(
TaxonNameRelationship::Iczn::Invalidating::Usage) + self.collect_descendants_and_itself_to_s(
TaxonNameRelationship::Iczn::Invalidating::Homonym) + self.collect_to_s(
TaxonNameRelationship::Iczn::Invalidating)
end

def self.disjoint_object_classes
Expand Down
@@ -1,13 +1,13 @@
class TaxonNameRelationship::Iczn::Invalidating::Synonym::ForgottenName < TaxonNameRelationship::Iczn::Invalidating::Synonym

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective.descendants.collect{|t| t.to_s} +
[TaxonNameRelationship::Iczn::Invalidating::Synonym.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::Subjective.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::FamilyBefore1961.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::Suppression.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_descendants_and_itself_to_s(
TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective) + self.collect_to_s(
TaxonNameRelationship::Iczn::Invalidating::Synonym,
TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective,
TaxonNameRelationship::Iczn::Invalidating::Synonym::Subjective,
TaxonNameRelationship::Iczn::Invalidating::Synonym::FamilyBefore1961,
TaxonNameRelationship::Iczn::Invalidating::Synonym::Suppression)
end

def self.subject_relationship_name
Expand Down
@@ -1,12 +1,12 @@
class TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective < TaxonNameRelationship::Iczn::Invalidating::Synonym

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Iczn::Invalidating::Synonym.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::Subjective.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::ForgottenName.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::FamilyBefore1961.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::Suppression.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Iczn::Invalidating::Synonym,
TaxonNameRelationship::Iczn::Invalidating::Synonym::Subjective,
TaxonNameRelationship::Iczn::Invalidating::Synonym::ForgottenName,
TaxonNameRelationship::Iczn::Invalidating::Synonym::FamilyBefore1961,
TaxonNameRelationship::Iczn::Invalidating::Synonym::Suppression)
end

def self.subject_relationship_name
Expand Down
@@ -1,10 +1,10 @@
class TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective::SynonymicHomonym < TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective

def self.disjoint_taxon_name_relationships
self.parent.disjoint_taxon_name_relationships +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective::UnjustifiedEmendation.to_s] +
[TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective::UnnecessaryReplacementName.to_s]
self.parent.disjoint_taxon_name_relationships + self.collect_to_s(
TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective,
TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective::UnjustifiedEmendation,
TaxonNameRelationship::Iczn::Invalidating::Synonym::Objective::UnnecessaryReplacementName)
end

def self.subject_relationship_name
Expand Down

0 comments on commit a609595

Please sign in to comment.