Skip to content

Commit

Permalink
Extract Method
Browse files Browse the repository at this point in the history
A common subexpression in several implementations of disjoint_taxon_name_relationships class method has been extracted into collect_to_s private class method at TaxonNameClassification class.
  • Loading branch information
LocoDelAssembly committed Jan 20, 2014
1 parent 86897d5 commit 9a15e4f
Show file tree
Hide file tree
Showing 33 changed files with 95 additions and 90 deletions.
5 changes: 5 additions & 0 deletions app/models/taxon_name_classification.rb
Original file line number Diff line number Diff line change
Expand Up @@ -92,4 +92,9 @@ def sv_validate_disjoint_classes


#endregion

private
def self.collect_to_s(*args)
args.collect{|arg| arg.to_s}
end
end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished < TaxonNameClassification::Icn::EffectivelyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished.to_s] +
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished) +
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished.to_s]
end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished::AsSynonym < TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished::NomenNudum < TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished::NonBinomial < TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished::NotLatin < TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished::Provisional < TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished::RejectedPublication < TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished::Tautonym < TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished < TaxonNameClassification::Icn::EffectivelyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished.to_s] +
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished) +
TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Icn::EffectivelyPublished::InvalidlyPublished.to_s]
end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished.to_s] +
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished) +
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s]
end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Homonym < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::IncorrectOriginalSpelling.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Superfluous.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::IncorrectOriginalSpelling,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Superfluous)
end

end
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::IncorrectOriginalSpelling < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Homonym.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Superfluous.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Homonym,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Superfluous)
end

end
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Superfluous < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::IncorrectOriginalSpelling.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Homonym.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::IncorrectOriginalSpelling,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate::Homonym)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished.to_s] +
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished) +
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate.descendants.collect{|t| t.to_s} +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Illegitimate.to_s]
end
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::AdoptedByPersoon < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::AdoptedByFries.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::AdoptedByFries)
end

end
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::AdoptedByFries < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::AdoptedByPersoon.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::AdoptedByPersoon)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Autonym < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate)
end

end
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Conserved < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Sanctioned.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Sanctioned)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::ConservedSpelling < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate)
end

end
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Correct < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Incorrect.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Incorrect)
end

end
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Incorrect < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Correct.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Correct)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::NomenNovum < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Nothotaxon < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate)
end

end
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
class TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Sanctioned < TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate.to_s] +
[TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Conserved.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate,
TaxonNameClassification::Icn::EffectivelyPublished::ValidlyPublished::Legitimate::Conserved)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Iczn::Available::Invalid < TaxonNameClassification::Iczn::Available

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Iczn::Available::Valid.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Iczn::Available::Valid)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Iczn::Available::Invalid::Homonym < TaxonNameClassification::Iczn::Available::Invalid

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Iczn::Available::Invalid.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Iczn::Available::Invalid)
end

end
4 changes: 2 additions & 2 deletions app/models/taxon_name_classification/iczn/available/valid.rb
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Iczn::Available::Valid < TaxonNameClassification::Iczn::Available

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Iczn::Available::Invalid.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Iczn::Available::Invalid)
end

end
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
class TaxonNameClassification::Iczn::Available::Valid::NomenDubium < TaxonNameClassification::Iczn::Available::Valid

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Iczn::Available::Valid.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Iczn::Available::Valid)
end

end
Original file line number Diff line number Diff line change
Expand Up @@ -23,18 +23,18 @@ def self.applicable_ranks
NomenclaturalRank::Iczn::GenusGroup.descendants.collect{|t| t.to_s}
end
def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Iczn::Unavailable::NonBinomial.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Iczn::Unavailable::NonBinomial)
end
end

class SpeciesNotBinomial < TaxonNameClassification::Iczn::Unavailable::NonBinomial
extend InnerClassSpeciesGroup

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Iczn::Unavailable::NonBinomial.to_s] +
[TaxonNameClassification::Iczn::Unavailable::NonBinomial::SubspeciesNotTrinomial.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Iczn::Unavailable::NonBinomial,
TaxonNameClassification::Iczn::Unavailable::NonBinomial::SubspeciesNotTrinomial)
end
end

Expand All @@ -43,18 +43,18 @@ def self.applicable_ranks
NomenclaturalRank::Iczn::GenusGroup.descendants.collect{|t| t.to_s}
end
def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Iczn::Unavailable::NonBinomial.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Iczn::Unavailable::NonBinomial)
end
end

class SubspeciesNotTrinomial < TaxonNameClassification::Iczn::Unavailable::NonBinomial
extend InnerClassSpeciesGroup

def self.disjoint_taxon_name_classes
self.parent.disjoint_taxon_name_classes +
[TaxonNameClassification::Iczn::Unavailable::NonBinomial.to_s] +
[TaxonNameClassification::Iczn::Unavailable::NonBinomial::SpeciesNotBinomial.to_s]
self.parent.disjoint_taxon_name_classes + self.collect_to_s(
TaxonNameClassification::Iczn::Unavailable::NonBinomial,
TaxonNameClassification::Iczn::Unavailable::NonBinomial::SpeciesNotBinomial)
end
end

Expand Down

0 comments on commit 9a15e4f

Please sign in to comment.