taxonifi 0.1.0 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (47) hide show
  1. data/Gemfile +1 -0
  2. data/Gemfile.lock +24 -7
  3. data/README.rdoc +5 -6
  4. data/Rakefile +1 -1
  5. data/VERSION +1 -1
  6. data/lib/assessor/row_assessor.rb +25 -18
  7. data/lib/export/format/base.rb +96 -1
  8. data/lib/export/format/obo_nomenclature.rb +71 -0
  9. data/lib/export/format/prolog.rb +59 -0
  10. data/lib/export/format/species_file.rb +303 -193
  11. data/lib/lumper/clump.rb +112 -0
  12. data/lib/lumper/lumper.rb +71 -45
  13. data/lib/lumper/lumps/parent_child_name_collection.rb +79 -15
  14. data/lib/models/author_year.rb +1 -2
  15. data/lib/models/base.rb +56 -51
  16. data/lib/models/collection.rb +16 -1
  17. data/lib/models/name.rb +56 -15
  18. data/lib/models/name_collection.rb +70 -19
  19. data/lib/models/ref.rb +17 -0
  20. data/lib/models/ref_collection.rb +2 -1
  21. data/lib/models/shared_class_methods.rb +29 -0
  22. data/lib/models/species_name.rb +14 -12
  23. data/lib/splitter/parser.rb +1 -2
  24. data/lib/splitter/tokens.rb +1 -1
  25. data/lib/taxonifi.rb +12 -0
  26. data/lib/utils/array.rb +17 -0
  27. data/lib/utils/hash.rb +17 -0
  28. data/taxonifi.gemspec +116 -0
  29. data/test/file_fixtures/Fossil.csv +11 -0
  30. data/test/file_fixtures/Lygaeoidea.csv +1 -1
  31. data/test/file_fixtures/names.csv +1 -0
  32. data/test/helper.rb +14 -0
  33. data/test/test_export_prolog.rb +14 -0
  34. data/test/test_exporter.rb +23 -0
  35. data/test/test_lumper_clump.rb +75 -0
  36. data/test/test_lumper_names.rb +67 -9
  37. data/test/test_lumper_parent_child_name_collection.rb +47 -3
  38. data/test/test_lumper_refs.rb +22 -7
  39. data/test/test_obo_nomenclature.rb +14 -0
  40. data/test/test_parser.rb +4 -2
  41. data/test/test_splitter_tokens.rb +9 -0
  42. data/test/test_taxonifi_accessor.rb +21 -15
  43. data/test/test_taxonifi_base.rb +25 -0
  44. data/test/test_taxonifi_name.rb +41 -4
  45. data/test/test_taxonifi_name_collection.rb +54 -17
  46. data/test/test_taxonifi_species_name.rb +1 -1
  47. metadata +34 -5
@@ -1,8 +1,13 @@
1
1
  require File.expand_path(File.join(File.dirname(__FILE__), 'helper'))
2
- require File.expand_path(File.join(File.dirname(__FILE__), '../lib/models/name_collection'))
3
2
 
4
3
  class TestTaxonifiNameCollection < Test::Unit::TestCase
5
4
 
5
+ def test_that_name_collections_have_collections
6
+ c = Taxonifi::Model::NameCollection.new
7
+ assert c.respond_to?(:collection)
8
+ assert_equal([], c.collection)
9
+ end
10
+
6
11
  def test_that_add_objects_adds_to_collection
7
12
  c = Taxonifi::Model::NameCollection.new
8
13
  n = Taxonifi::Model::Name.new
@@ -10,12 +15,6 @@ class TestTaxonifiNameCollection < Test::Unit::TestCase
10
15
  assert_equal(1, c.collection.size)
11
16
  end
12
17
 
13
- def test_that_name_collections_have_collections
14
- c = Taxonifi::Model::NameCollection.new
15
- assert c.respond_to?(:collection)
16
- assert_equal([], c.collection)
17
- end
18
-
19
18
  def test_that_name_collection_returns_encompassing_rank
20
19
  c = Taxonifi::Model::NameCollection.new
21
20
  n = Taxonifi::Model::Name.new
@@ -108,21 +107,58 @@ class TestTaxonifiNameCollection < Test::Unit::TestCase
108
107
  assert_equal "Fooidae", c.by_name_index['family'].keys.first
109
108
  end
110
109
 
110
+
111
111
  def test_name_exists?
112
112
  c = Taxonifi::Model::NameCollection.new
113
- n1 = Taxonifi::Model::Name.new(:name => "Fooidae", :rank => "family")
114
- n2 = Taxonifi::Model::Name.new(:name => "Bar", :rank => "genus", :parent => n1)
115
- n3 = Taxonifi::Model::Name.new(:name => "Bar", :rank => "genus", :parent => n1)
116
- n4 = Taxonifi::Model::Name.new(:name => "Bar", :rank => "subgenus", :parent => n2)
117
- n5 = Taxonifi::Model::Name.new(:name => "foo", :rank => "species", :parent => n2)
118
- n6 = Taxonifi::Model::Name.new(:name => "foo", :rank => "species", :parent => n2)
113
+ n1 = Taxonifi::Model::Name.new(name: "Fooidae", rank: "family", author: nil , year: nil)
114
+ n2 = Taxonifi::Model::Name.new(name: "Bar", rank: "genus", author: nil , year: nil, :parent => n1)
115
+ n3 = Taxonifi::Model::Name.new(name: "Bar", rank: "genus", author: nil , year: nil, :parent => n1)
116
+ n4 = Taxonifi::Model::Name.new(name: "Bar", rank: "subgenus", author: nil , year: nil, :parent => n2)
117
+ n5 = Taxonifi::Model::Name.new(name: "foo", rank: "species", author: 'Smith', year: 1920, :parent => n2)
118
+ n6 = Taxonifi::Model::Name.new(name: "foo", rank: "species", author: 'Smith', year: 1920, :parent => n2)
119
+ n7 = Taxonifi::Model::Name.new(name: "Blorf", rank: "genus", author: 'Smith', year: 1920, :parent => n1)
120
+ n8 = Taxonifi::Model::Name.new(name: "foo", rank: "species", author: 'Smith', year: 1920, :parent => n7)
121
+ n9 = Taxonifi::Model::Name.new(name: "foo", rank: "species", author: 'Jones', year: nil, :parent => n7)
122
+ n10 = Taxonifi::Model::Name.new(name: "foo", rank: "species", author: 'Jones', year: nil, :parent => n7)
123
+ n11 = Taxonifi::Model::Name.new(name: "foo", rank: "species", author: nil , year: 1920, :parent => n7)
124
+ n12 = Taxonifi::Model::Name.new(name: "foo", rank: "species", author: nil , year: 1920, :parent => n7)
125
+ n13 = Taxonifi::Model::Name.new(name: "foo", rank: "subspecies", author: nil , year: 1920, :parent => n11)
126
+
127
+ # Given this set test that the following are identical (and that all others are not):
128
+ # n2 = n3 # parent/name/rank
129
+ # n5 = n6 # parent/name/rank/author/year
130
+ # n9 = n10 # parent/name/rank/author
131
+ # n11 = n12 # parent/name/year
132
+ # n13 = n11 # parent/nominotypic name
133
+
119
134
  c.add_object(n1)
135
+
120
136
  c.add_object(n2)
137
+ assert c.name_exists?(n3), "Name exists, but not caught."
138
+
139
+ assert c.name_exists?(n4), "Nominotypical subgenus exists."
140
+
121
141
  c.add_object(n5)
122
- assert c.name_exists?(n3), "Name exists, but not caught."
123
- assert c.name_exists?(n6), "Name exists, but not caught."
124
- assert !c.name_exists?(n4), "Name doesn't exist, but asserted to."
125
- assert_equal n2.id, c.name_exists?(n3)
142
+ assert c.name_exists?(n6), "Name exists, but not caught."
143
+
144
+ assert !c.name_exists?(n7), "Name doesn't exist, but asserted to."
145
+ c.add_object(n7)
146
+
147
+ assert !c.name_exists?(n8), "Name doesn't exist, but asserted to."
148
+ c.add_object(n8)
149
+ assert !c.name_exists?(n9), "Name doesn't exist, but asserted to."
150
+ c.add_object(n9)
151
+ assert c.name_exists?(n10), "Name exists and wasn't caught."
152
+
153
+ assert !c.name_exists?(n11)
154
+ c.add_object(n11)
155
+ assert c.name_exists?(n12)
156
+
157
+ assert c.name_exists?(n13)
158
+
159
+ assert_equal n2.id, c.name_exists?(n3)
160
+ assert_equal n9.id, c.name_exists?(n10)
161
+ assert_equal n11.id, c.name_exists?(n12)
126
162
  end
127
163
 
128
164
  def test_that_name_collection_generate_ref_collection
@@ -154,5 +190,6 @@ class TestTaxonifiNameCollection < Test::Unit::TestCase
154
190
  foo = 1
155
191
  end
156
192
 
193
+
157
194
  end
158
195
 
@@ -88,7 +88,7 @@ class TestTaxonifiSpeciesName < Test::Unit::TestCase
88
88
  sn3 = Taxonifi::Model::SpeciesName.new(:genus => g, :subgenus => sg, :species => s, :subspecies => ss)
89
89
  assert_equal "Foo (Bar) stuff things Jones, 2012", sn3.display_name
90
90
 
91
- ss.parens = false
91
+ ss.parens = true
92
92
  assert_equal "Foo (Bar) stuff things (Jones, 2012)", sn3.display_name
93
93
  end
94
94
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: taxonifi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.2.0
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-06-07 00:00:00.000000000 Z
12
+ date: 2013-03-27 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rdoc
@@ -59,6 +59,22 @@ dependencies:
59
59
  - - ~>
60
60
  - !ruby/object:Gem::Version
61
61
  version: 1.8.3
62
+ - !ruby/object:Gem::Dependency
63
+ name: activerecord
64
+ requirement: !ruby/object:Gem::Requirement
65
+ none: false
66
+ requirements:
67
+ - - '='
68
+ - !ruby/object:Gem::Version
69
+ version: 3.2.8
70
+ type: :development
71
+ prerelease: false
72
+ version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
74
+ requirements:
75
+ - - '='
76
+ - !ruby/object:Gem::Version
77
+ version: 3.2.8
62
78
  - !ruby/object:Gem::Dependency
63
79
  name: debugger
64
80
  requirement: !ruby/object:Gem::Requirement
@@ -96,7 +112,10 @@ files:
96
112
  - lib/assessor/row_assessor.rb
97
113
  - lib/export/export.rb
98
114
  - lib/export/format/base.rb
115
+ - lib/export/format/obo_nomenclature.rb
116
+ - lib/export/format/prolog.rb
99
117
  - lib/export/format/species_file.rb
118
+ - lib/lumper/clump.rb
100
119
  - lib/lumper/lumper.rb
101
120
  - lib/lumper/lumps/parent_child_name_collection.rb
102
121
  - lib/models/author_year.rb
@@ -110,6 +129,7 @@ files:
110
129
  - lib/models/person.rb
111
130
  - lib/models/ref.rb
112
131
  - lib/models/ref_collection.rb
132
+ - lib/models/shared_class_methods.rb
113
133
  - lib/models/species_name.rb
114
134
  - lib/splitter/builder.rb
115
135
  - lib/splitter/lexer.rb
@@ -117,26 +137,35 @@ files:
117
137
  - lib/splitter/splitter.rb
118
138
  - lib/splitter/tokens.rb
119
139
  - lib/taxonifi.rb
140
+ - lib/utils/array.rb
141
+ - lib/utils/hash.rb
142
+ - taxonifi.gemspec
143
+ - test/file_fixtures/Fossil.csv
120
144
  - test/file_fixtures/Lygaeoidea.csv
145
+ - test/file_fixtures/names.csv
121
146
  - test/helper.rb
147
+ - test/test_export_prolog.rb
122
148
  - test/test_exporter.rb
149
+ - test/test_lumper_clump.rb
123
150
  - test/test_lumper_geogs.rb
124
151
  - test/test_lumper_hierarchical_collection.rb
125
152
  - test/test_lumper_names.rb
126
153
  - test/test_lumper_parent_child_name_collection.rb
127
154
  - test/test_lumper_refs.rb
155
+ - test/test_obo_nomenclature.rb
128
156
  - test/test_parser.rb
129
157
  - test/test_splitter.rb
130
158
  - test/test_splitter_tokens.rb
131
159
  - test/test_taxonifi.rb
132
160
  - test/test_taxonifi_accessor.rb
161
+ - test/test_taxonifi_base.rb
133
162
  - test/test_taxonifi_geog.rb
134
163
  - test/test_taxonifi_name.rb
135
164
  - test/test_taxonifi_name_collection.rb
136
165
  - test/test_taxonifi_ref.rb
137
166
  - test/test_taxonifi_ref_collection.rb
138
167
  - test/test_taxonifi_species_name.rb
139
- homepage: http://github.com/mjy/taxonifi
168
+ homepage: http://github.com/SpeciesFile/taxonifi
140
169
  licenses:
141
170
  - MIT
142
171
  post_install_message:
@@ -151,7 +180,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
151
180
  version: '0'
152
181
  segments:
153
182
  - 0
154
- hash: 3742775100880240863
183
+ hash: -2473283969605789743
155
184
  required_rubygems_version: !ruby/object:Gem::Requirement
156
185
  none: false
157
186
  requirements:
@@ -160,7 +189,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
189
  version: '0'
161
190
  requirements: []
162
191
  rubyforge_project:
163
- rubygems_version: 1.8.21
192
+ rubygems_version: 1.8.25
164
193
  signing_key:
165
194
  specification_version: 3
166
195
  summary: A general purpose framework for scripted handling of taxonomic names