biodiversity 3.4.0 → 3.4.1

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: bd706ba900f6f136fae256b85f55223e955b4300
4
- data.tar.gz: 00b5ee4e9b8b34d7fcb5084ae4b82e6db8635522
3
+ metadata.gz: e93f20afe7648a25abd17776d1393c4c26fe766a
4
+ data.tar.gz: db6597066a86813547957855fbbaa40f6531f459
5
5
  SHA512:
6
- metadata.gz: f34fb2b4e2d7e97f748967f9cec04625416b33789287ac6de7d63de348b676d4504b4c8a631505d7074989aff2d0597b857b0843b3f45cb4c5c3f5d61e7336ca
7
- data.tar.gz: 8886e2fccfb35456c326e461c7f48d42ef3c5f76d2044219b8e63af2c690851f91cc4c536b2727ffe0684fdf0c006425322d6d7664b7dc7fe4717e02ed17031d
6
+ metadata.gz: 31147b2fea27eb3de0291631ec268f1ec272222208b0e0b899ba10084f40c37ba8b26ce25297bcc8d38267f383cc941432ce8d92653a32a78d17753e51b31454
7
+ data.tar.gz: 19effcb528d52cba1652bcaf0578df91c72679bed1097bcd4477c0413b2db64116107d7d46128fcbacad7991d8fbbf1bf282df866f952642c766d1a1aa8e5fa6
data/CHANGELOG CHANGED
@@ -1,3 +1,5 @@
1
+ 3.4.1 -- support for authors starting with "d'"
2
+
1
3
  3.4.0 -- added ScientificNameParser.add_rank_to_canonical(parsed) method.
2
4
  This method allows to add infraspecific rank to a canonical form
3
5
  after the fact of parsing.
@@ -5241,6 +5241,9 @@ module ScientificNameClean
5241
5241
  end
5242
5242
 
5243
5243
  module AuthorWord3
5244
+ end
5245
+
5246
+ module AuthorWord4
5244
5247
  def value
5245
5248
  text_value.gsub(/([\p{Lu}]{3,})/) do |match|
5246
5249
  UnicodeUtils.titlecase(match)
@@ -5256,10 +5259,10 @@ module ScientificNameClean
5256
5259
  end
5257
5260
  end
5258
5261
 
5259
- module AuthorWord4
5262
+ module AuthorWord5
5260
5263
  end
5261
5264
 
5262
- module AuthorWord5
5265
+ module AuthorWord6
5263
5266
  def value
5264
5267
  text_value
5265
5268
  end
@@ -5351,147 +5354,180 @@ module ScientificNameClean
5351
5354
  r0 = r2
5352
5355
  else
5353
5356
  i7, s7 = index, []
5354
- i8 = index
5355
- if has_terminal?("Å", false, index)
5356
- r9 = instantiate_node(SyntaxNode,input, index...(index + 1))
5357
+ i9, s9 = index, []
5358
+ if has_terminal?("d", false, index)
5359
+ r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
5357
5360
  @index += 1
5358
5361
  else
5359
- terminal_parse_failure("Å")
5362
+ terminal_parse_failure("d")
5363
+ r10 = nil
5364
+ end
5365
+ s9 << r10
5366
+ if r10
5367
+ if has_terminal?('\G[\'’]', true, index)
5368
+ r11 = true
5369
+ @index += 1
5370
+ else
5371
+ r11 = nil
5372
+ end
5373
+ s9 << r11
5374
+ end
5375
+ if s9.last
5376
+ r9 = instantiate_node(SyntaxNode,input, i9...index, s9)
5377
+ r9.extend(AuthorWord2)
5378
+ else
5379
+ @index = i9
5360
5380
  r9 = nil
5361
5381
  end
5362
5382
  if r9
5363
5383
  r8 = r9
5364
5384
  else
5365
- if has_terminal?("Ö", false, index)
5366
- r10 = instantiate_node(SyntaxNode,input, index...(index + 1))
5385
+ r8 = instantiate_node(SyntaxNode,input, index...index)
5386
+ end
5387
+ s7 << r8
5388
+ if r8
5389
+ i12 = index
5390
+ if has_terminal?("Å", false, index)
5391
+ r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
5367
5392
  @index += 1
5368
5393
  else
5369
- terminal_parse_failure("Ö")
5370
- r10 = nil
5394
+ terminal_parse_failure("Å")
5395
+ r13 = nil
5371
5396
  end
5372
- if r10
5373
- r8 = r10
5397
+ if r13
5398
+ r12 = r13
5374
5399
  else
5375
- if has_terminal?("Á", false, index)
5376
- r11 = instantiate_node(SyntaxNode,input, index...(index + 1))
5400
+ if has_terminal?("Ö", false, index)
5401
+ r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
5377
5402
  @index += 1
5378
5403
  else
5379
- terminal_parse_failure("Á")
5380
- r11 = nil
5404
+ terminal_parse_failure("Ö")
5405
+ r14 = nil
5381
5406
  end
5382
- if r11
5383
- r8 = r11
5407
+ if r14
5408
+ r12 = r14
5384
5409
  else
5385
- if has_terminal?("Ø", false, index)
5386
- r12 = instantiate_node(SyntaxNode,input, index...(index + 1))
5410
+ if has_terminal?("Á", false, index)
5411
+ r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
5387
5412
  @index += 1
5388
5413
  else
5389
- terminal_parse_failure("Ø")
5390
- r12 = nil
5414
+ terminal_parse_failure("Á")
5415
+ r15 = nil
5391
5416
  end
5392
- if r12
5393
- r8 = r12
5417
+ if r15
5418
+ r12 = r15
5394
5419
  else
5395
- if has_terminal?("Ô", false, index)
5396
- r13 = instantiate_node(SyntaxNode,input, index...(index + 1))
5420
+ if has_terminal?("Ø", false, index)
5421
+ r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
5397
5422
  @index += 1
5398
5423
  else
5399
- terminal_parse_failure("Ô")
5400
- r13 = nil
5424
+ terminal_parse_failure("Ø")
5425
+ r16 = nil
5401
5426
  end
5402
- if r13
5403
- r8 = r13
5427
+ if r16
5428
+ r12 = r16
5404
5429
  else
5405
- if has_terminal?("Š", false, index)
5406
- r14 = instantiate_node(SyntaxNode,input, index...(index + 1))
5430
+ if has_terminal?("Ô", false, index)
5431
+ r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
5407
5432
  @index += 1
5408
5433
  else
5409
- terminal_parse_failure("Š")
5410
- r14 = nil
5434
+ terminal_parse_failure("Ô")
5435
+ r17 = nil
5411
5436
  end
5412
- if r14
5413
- r8 = r14
5437
+ if r17
5438
+ r12 = r17
5414
5439
  else
5415
- if has_terminal?("Ś", false, index)
5416
- r15 = instantiate_node(SyntaxNode,input, index...(index + 1))
5440
+ if has_terminal?("Š", false, index)
5441
+ r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
5417
5442
  @index += 1
5418
5443
  else
5419
- terminal_parse_failure("Ś")
5420
- r15 = nil
5444
+ terminal_parse_failure("Š")
5445
+ r18 = nil
5421
5446
  end
5422
- if r15
5423
- r8 = r15
5447
+ if r18
5448
+ r12 = r18
5424
5449
  else
5425
- if has_terminal?("Č", false, index)
5426
- r16 = instantiate_node(SyntaxNode,input, index...(index + 1))
5450
+ if has_terminal?("Ś", false, index)
5451
+ r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
5427
5452
  @index += 1
5428
5453
  else
5429
- terminal_parse_failure("Č")
5430
- r16 = nil
5454
+ terminal_parse_failure("Ś")
5455
+ r19 = nil
5431
5456
  end
5432
- if r16
5433
- r8 = r16
5457
+ if r19
5458
+ r12 = r19
5434
5459
  else
5435
- if has_terminal?("Ķ", false, index)
5436
- r17 = instantiate_node(SyntaxNode,input, index...(index + 1))
5460
+ if has_terminal?("Č", false, index)
5461
+ r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
5437
5462
  @index += 1
5438
5463
  else
5439
- terminal_parse_failure("Ķ")
5440
- r17 = nil
5464
+ terminal_parse_failure("Č")
5465
+ r20 = nil
5441
5466
  end
5442
- if r17
5443
- r8 = r17
5467
+ if r20
5468
+ r12 = r20
5444
5469
  else
5445
- if has_terminal?("Ł", false, index)
5446
- r18 = instantiate_node(SyntaxNode,input, index...(index + 1))
5470
+ if has_terminal?("Ķ", false, index)
5471
+ r21 = instantiate_node(SyntaxNode,input, index...(index + 1))
5447
5472
  @index += 1
5448
5473
  else
5449
- terminal_parse_failure("Ł")
5450
- r18 = nil
5474
+ terminal_parse_failure("Ķ")
5475
+ r21 = nil
5451
5476
  end
5452
- if r18
5453
- r8 = r18
5477
+ if r21
5478
+ r12 = r21
5454
5479
  else
5455
- if has_terminal?("É", false, index)
5456
- r19 = instantiate_node(SyntaxNode,input, index...(index + 1))
5480
+ if has_terminal?("Ł", false, index)
5481
+ r22 = instantiate_node(SyntaxNode,input, index...(index + 1))
5457
5482
  @index += 1
5458
5483
  else
5459
- terminal_parse_failure("É")
5460
- r19 = nil
5484
+ terminal_parse_failure("Ł")
5485
+ r22 = nil
5461
5486
  end
5462
- if r19
5463
- r8 = r19
5487
+ if r22
5488
+ r12 = r22
5464
5489
  else
5465
- if has_terminal?("Ž", false, index)
5466
- r20 = instantiate_node(SyntaxNode,input, index...(index + 1))
5490
+ if has_terminal?("É", false, index)
5491
+ r23 = instantiate_node(SyntaxNode,input, index...(index + 1))
5467
5492
  @index += 1
5468
5493
  else
5469
- terminal_parse_failure("Ž")
5470
- r20 = nil
5494
+ terminal_parse_failure("É")
5495
+ r23 = nil
5471
5496
  end
5472
- if r20
5473
- r8 = r20
5497
+ if r23
5498
+ r12 = r23
5474
5499
  else
5475
- if has_terminal?('\G[A-W]', true, index)
5476
- r21 = true
5500
+ if has_terminal?("Ž", false, index)
5501
+ r24 = instantiate_node(SyntaxNode,input, index...(index + 1))
5477
5502
  @index += 1
5478
5503
  else
5479
- r21 = nil
5504
+ terminal_parse_failure("Ž")
5505
+ r24 = nil
5480
5506
  end
5481
- if r21
5482
- r8 = r21
5507
+ if r24
5508
+ r12 = r24
5483
5509
  else
5484
- if has_terminal?('\G[Y-Z]', true, index)
5485
- r22 = true
5510
+ if has_terminal?('\G[A-W]', true, index)
5511
+ r25 = true
5486
5512
  @index += 1
5487
5513
  else
5488
- r22 = nil
5514
+ r25 = nil
5489
5515
  end
5490
- if r22
5491
- r8 = r22
5516
+ if r25
5517
+ r12 = r25
5492
5518
  else
5493
- @index = i8
5494
- r8 = nil
5519
+ if has_terminal?('\G[Y-Z]', true, index)
5520
+ r26 = true
5521
+ @index += 1
5522
+ else
5523
+ r26 = nil
5524
+ end
5525
+ if r26
5526
+ r12 = r26
5527
+ else
5528
+ @index = i12
5529
+ r12 = nil
5530
+ end
5495
5531
  end
5496
5532
  end
5497
5533
  end
@@ -5505,30 +5541,30 @@ module ScientificNameClean
5505
5541
  end
5506
5542
  end
5507
5543
  end
5508
- end
5509
- s7 << r8
5510
- if r8
5511
- s23, i23 = [], index
5512
- loop do
5513
- if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
5514
- r24 = true
5515
- @index += 1
5516
- else
5517
- r24 = nil
5518
- end
5519
- if r24
5520
- s23 << r24
5521
- else
5522
- break
5544
+ s7 << r12
5545
+ if r12
5546
+ s27, i27 = [], index
5547
+ loop do
5548
+ if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
5549
+ r28 = true
5550
+ @index += 1
5551
+ else
5552
+ r28 = nil
5553
+ end
5554
+ if r28
5555
+ s27 << r28
5556
+ else
5557
+ break
5558
+ end
5523
5559
  end
5560
+ r27 = instantiate_node(SyntaxNode,input, i27...index, s27)
5561
+ s7 << r27
5524
5562
  end
5525
- r23 = instantiate_node(SyntaxNode,input, i23...index, s23)
5526
- s7 << r23
5527
5563
  end
5528
5564
  if s7.last
5529
5565
  r7 = instantiate_node(SyntaxNode,input, i7...index, s7)
5530
- r7.extend(AuthorWord2)
5531
5566
  r7.extend(AuthorWord3)
5567
+ r7.extend(AuthorWord4)
5532
5568
  else
5533
5569
  @index = i7
5534
5570
  r7 = nil
@@ -5536,52 +5572,52 @@ module ScientificNameClean
5536
5572
  if r7
5537
5573
  r0 = r7
5538
5574
  else
5539
- i25, s25 = index, []
5575
+ i29, s29 = index, []
5540
5576
  if has_terminal?("X", false, index)
5541
- r26 = instantiate_node(SyntaxNode,input, index...(index + 1))
5577
+ r30 = instantiate_node(SyntaxNode,input, index...(index + 1))
5542
5578
  @index += 1
5543
5579
  else
5544
5580
  terminal_parse_failure("X")
5545
- r26 = nil
5581
+ r30 = nil
5546
5582
  end
5547
- s25 << r26
5548
- if r26
5549
- s27, i27 = [], index
5583
+ s29 << r30
5584
+ if r30
5585
+ s31, i31 = [], index
5550
5586
  loop do
5551
5587
  if has_terminal?('\G[^0-9\\[\\]\\(\\)\\s&,]', true, index)
5552
- r28 = true
5588
+ r32 = true
5553
5589
  @index += 1
5554
5590
  else
5555
- r28 = nil
5591
+ r32 = nil
5556
5592
  end
5557
- if r28
5558
- s27 << r28
5593
+ if r32
5594
+ s31 << r32
5559
5595
  else
5560
5596
  break
5561
5597
  end
5562
5598
  end
5563
- if s27.empty?
5564
- @index = i27
5565
- r27 = nil
5599
+ if s31.empty?
5600
+ @index = i31
5601
+ r31 = nil
5566
5602
  else
5567
- r27 = instantiate_node(SyntaxNode,input, i27...index, s27)
5603
+ r31 = instantiate_node(SyntaxNode,input, i31...index, s31)
5568
5604
  end
5569
- s25 << r27
5605
+ s29 << r31
5570
5606
  end
5571
- if s25.last
5572
- r25 = instantiate_node(SyntaxNode,input, i25...index, s25)
5573
- r25.extend(AuthorWord4)
5574
- r25.extend(AuthorWord5)
5607
+ if s29.last
5608
+ r29 = instantiate_node(SyntaxNode,input, i29...index, s29)
5609
+ r29.extend(AuthorWord5)
5610
+ r29.extend(AuthorWord6)
5575
5611
  else
5576
- @index = i25
5577
- r25 = nil
5612
+ @index = i29
5613
+ r29 = nil
5578
5614
  end
5579
- if r25
5580
- r0 = r25
5615
+ if r29
5616
+ r0 = r29
5581
5617
  else
5582
- r29 = _nt_author_prefix_word
5583
- if r29
5584
- r0 = r29
5618
+ r33 = _nt_author_prefix_word
5619
+ if r33
5620
+ r0 = r33
5585
5621
  else
5586
5622
  @index = i0
5587
5623
  r0 = nil
@@ -1136,7 +1136,7 @@ grammar ScientificNameClean
1136
1136
  end
1137
1137
  }
1138
1138
  /
1139
- ("Å"/"Ö"/"Á"/"Ø"/"Ô"/"Š"/"Ś"/"Č"/"Ķ"/"Ł"/"É"/"Ž"/[A-W]/[Y-Z]) [^0-9\[\]\(\)\s&,]* {
1139
+ ("d" ['’])? ("Å"/"Ö"/"Á"/"Ø"/"Ô"/"Š"/"Ś"/"Č"/"Ķ"/"Ł"/"É"/"Ž"/[A-W]/[Y-Z]) [^0-9\[\]\(\)\s&,]* {
1140
1140
  def value
1141
1141
  text_value.gsub(/([\p{Lu}]{3,})/) do |match|
1142
1142
  UnicodeUtils.titlecase(match)
@@ -1,3 +1,3 @@
1
1
  module Biodiversity
2
- VERSION = "3.4.0"
2
+ VERSION = "3.4.1"
3
3
  end
@@ -221,6 +221,7 @@ Puya acris ht.|{"scientificName":{"id":"83c98b8e-f373-57df-92bf-5a39a56d9909", "
221
221
  Puya acris anon.|{"scientificName":{"id":"2b5243d3-e8a7-5e6c-a2c1-beb2ee5c3020", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Puya acris anon.","normalized":"Puya acris anon.","canonical":"Puya acris","hybrid":false,"details":[{"genus":{"string":"Puya"},"species":{"string":"acris","authorship":"anon.","basionymAuthorTeam":{"authorTeam":"anon.","author":["unknown"]}}}],"positions":{"0":["genus",4],"5":["species",10],"11":["unknown_author",16]}}}
222
222
  Puya acris hort.|{"scientificName":{"id":"78228a5e-dcd3-58f9-bf21-b452c378f6ee", "parsed":true, "verbatim":"Puya acris hort.", "normalized":"Puya acris", "canonical":"Puya acris", "hybrid":false, "details":[{"genus":{"string":"Puya"}, "species":{"string":"acris"}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 4], "5":["species", 10]}}}
223
223
  Prunus mexicana S. Watson var. reticulata (Sarg.) Sarg.|{"scientificName":{"id":"5ba1cc96-ab40-51b3-951d-f91b5bff1da8", "parsed":true, "parser_version":"test_version", "verbatim":"Prunus mexicana S. Watson var. reticulata (Sarg.) Sarg.", "normalized":"Prunus mexicana S. Watson var. reticulata (Sarg.) Sarg.", "canonical":"Prunus mexicana reticulata", "hybrid":false, "details":[{"genus":{"string":"Prunus"}, "species":{"string":"mexicana", "authorship":"S. Watson", "basionymAuthorTeam":{"authorTeam":"S. Watson", "author":["S. Watson"]}}, "infraspecies":[{"string":"reticulata", "rank":"var.", "authorship":"(Sarg.) Sarg.", "combinationAuthorTeam":{"authorTeam":"Sarg.", "author":["Sarg."]}, "basionymAuthorTeam":{"authorTeam":"Sarg.", "author":["Sarg."]}}]}], "parser_run":1, "positions":{"0":["genus", 6], "7":["species", 15], "16":["author_word", 18], "19":["author_word", 25], "26":["infraspecific_type", 30], "31":["infraspecies", 41], "43":["author_word", 48], "50":["author_word", 55]}}}
224
+
224
225
  #miscellaneous names
225
226
  Fagus sylvatica subsp. orientalis (Lipsky) Greuter & Burdet|{"scientificName":{"id":"f0bff1a3-0923-58d1-807f-c5da5b85531e", "parsed":true, "parser_version":"test_version", "verbatim":"Fagus sylvatica subsp. orientalis (Lipsky) Greuter & Burdet", "normalized":"Fagus sylvatica subsp. orientalis (Lipsky) Greuter & Burdet", "canonical":"Fagus sylvatica orientalis", "hybrid":false, "details":[{"genus":{"string":"Fagus"}, "species":{"string":"sylvatica"}, "infraspecies":[{"string":"orientalis", "rank":"subsp.", "authorship":"(Lipsky) Greuter & Burdet", "combinationAuthorTeam":{"authorTeam":"Greuter & Burdet", "author":["Greuter", "Burdet"]}, "basionymAuthorTeam":{"authorTeam":"Lipsky", "author":["Lipsky"]}}]}], "parser_run":1, "positions":{"0":["genus", 5], "6":["species", 15], "16":["infraspecific_type", 22], "23":["infraspecies", 33], "35":["author_word", 41], "43":["author_word", 50], "53":["author_word", 59]}}}
226
227
  Stagonospora polyspora M.T. Lucas & Sousa da Câmara 1934|{"scientificName":{"id":"f03d53d7-2db1-591f-8727-6b77c0af2e0c", "parsed":true, "parser_version":"test_version", "parser_run":1,"verbatim":"Stagonospora polyspora M.T. Lucas & Sousa da C\u00e2mara 1934","normalized":"Stagonospora polyspora M.T. Lucas & Sousa da C\u00e2mara 1934","canonical":"Stagonospora polyspora","hybrid":false,"details":[{"genus":{"string":"Stagonospora"},"species":{"string":"polyspora","authorship":"M.T. Lucas & Sousa da C\u00e2mara 1934","basionymAuthorTeam":{"authorTeam":"M.T. Lucas & Sousa da C\u00e2mara","author":["M.T. Lucas","Sousa da C\u00e2mara"],"year":"1934"}}}],"positions":{"0":["genus",12],"13":["species",22],"23":["author_word",27],"28":["author_word",33],"36":["author_word",41],"42":["author_word",44],"45":["author_word",51],"52":["year",56]}}}
@@ -246,6 +247,8 @@ Cypraeovula (Luponia) amphithales perdentata|{"scientificName":{"id":"d05be4e3-a
246
247
  Polyrhachis orsyllus nat musculus Forel 1901|{"scientificName":{"id":"3392132e-3dba-5b7e-a7c9-e4a68954c8b2", "parsed":true, "parser_version":"test_version", "verbatim":"Polyrhachis orsyllus nat musculus Forel 1901", "normalized":"Polyrhachis orsyllus nat musculus Forel 1901", "canonical":"Polyrhachis orsyllus musculus", "hybrid":false, "details":[{"genus":{"string":"Polyrhachis"}, "species":{"string":"orsyllus"}, "infraspecies":[{"string":"musculus", "rank":"nat", "authorship":"Forel 1901", "basionymAuthorTeam":{"authorTeam":"Forel", "author":["Forel"], "year":"1901"}}]}], "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 20], "21":["infraspecific_type", 24], "25":["infraspecies", 33], "34":["author_word", 39], "40":["year", 44]}}}
247
248
  Latrodectus 13-guttatus Thorell, 1875|{"scientificName":{"id":"0a2dd58d-0c7b-5aa3-99bf-2b4fbb5e9a52", "parsed":true, "verbatim":"Latrodectus 13-guttatus Thorell, 1875", "normalized":"Latrodectus tredecguttatus Thorell 1875", "canonical":"Latrodectus tredecguttatus", "hybrid":false, "details":[{"genus":{"string":"Latrodectus"}, "species":{"string":"tredecguttatus", "authorship":"Thorell, 1875", "basionymAuthorTeam":{"authorTeam":"Thorell", "author":["Thorell"], "year":"1875"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 23], "24":["author_word", 31], "33":["year", 37]}}}
248
249
  Latrodectus 3-guttatus Thorell 1875|{"scientificName":{"id":"27d61aec-f214-54c2-8c35-a7a80617e54d", "parsed":true, "verbatim":"Latrodectus 3-guttatus Thorell 1875", "normalized":"Latrodectus triguttatus Thorell 1875", "canonical":"Latrodectus triguttatus", "hybrid":false, "details":[{"genus":{"string":"Latrodectus"}, "species":{"string":"triguttatus", "authorship":"Thorell 1875", "basionymAuthorTeam":{"authorTeam":"Thorell", "author":["Thorell"], "year":"1875"}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 11], "12":["species", 22], "23":["author_word", 30], "31":["year", 35]}}}
250
+ Cirsium creticum (Lam.) d'Urv. subsp. creticum|{"scientificName":{"id":"fb7cbaf0-d192-5302-b86f-612773b3abae", "parsed":true, "parser_version":"test_version", "verbatim":"Cirsium creticum (Lam.) d'Urv. subsp. creticum", "normalized":"Cirsium creticum (Lam.) d'Urv. subsp. creticum", "canonical":"Cirsium creticum creticum", "hybrid":false, "details":[{"genus":{"string":"Cirsium"}, "species":{"string":"creticum", "authorship":"(Lam.) d'Urv.", "combinationAuthorTeam":{"authorTeam":"d'Urv.", "author":["d'Urv."]}, "basionymAuthorTeam":{"authorTeam":"Lam.", "author":["Lam."]}}, "infraspecies":[{"string":"creticum", "rank":"subsp."}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 16], "18":["author_word", 22], "24":["author_word", 30], "31":["infraspecific_type", 37], "38":["infraspecies", 46]}}}
251
+ Cirsium creticum (Lam.) d’Urv. subsp. creticum|{"scientificName":{"id":"2c2018ea-1185-5f97-8989-621a979c5349", "parsed":true, "parser_version":"test_version", "verbatim":"Cirsium creticum (Lam.) d’Urv. subsp. creticum", "normalized":"Cirsium creticum (Lam.) d’Urv. subsp. creticum", "canonical":"Cirsium creticum creticum", "hybrid":false, "details":[{"genus":{"string":"Cirsium"}, "species":{"string":"creticum", "authorship":"(Lam.) d’Urv.", "combinationAuthorTeam":{"authorTeam":"d’Urv.", "author":["d’Urv."]}, "basionymAuthorTeam":{"authorTeam":"Lam.", "author":["Lam."]}}, "infraspecies":[{"string":"creticum", "rank":"subsp."}]}], "parser_run":1, "positions":{"0":["genus", 7], "8":["species", 16], "18":["author_word", 22], "24":["author_word", 30], "31":["infraspecific_type", 37], "38":["infraspecies", 46]}}}
249
252
 
250
253
  #names with ex authors
251
254
  Arthopyrenia hyalospora (Nyl. ex Banker) R.C. Harris|{"scientificName":{"id":"ab3998af-53dc-53fd-af8b-fab94dacbcbc", "parsed":true, "verbatim":"Arthopyrenia hyalospora (Nyl. ex Banker) R.C. Harris", "normalized":"Arthopyrenia hyalospora (Nyl. ex Banker) R.C. Harris", "canonical":"Arthopyrenia hyalospora", "hybrid":false, "details":[{"genus":{"string":"Arthopyrenia"}, "species":{"string":"hyalospora", "authorship":"(Nyl. ex Banker) R.C. Harris", "combinationAuthorTeam":{"authorTeam":"R.C. Harris", "author":["R.C. Harris"]}, "basionymAuthorTeam":{"authorTeam":"Nyl.", "author":["Nyl."], "exAuthorTeam":{"authorTeam":"Banker", "author":["Banker"]}}}}], "parser_version":"test_version", "parser_run":1, "positions":{"0":["genus", 12], "13":["species", 23], "25":["author_word", 29], "33":["author_word", 39], "41":["author_word", 45], "46":["author_word", 52]}}}
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: biodiversity
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.4.0
4
+ version: 3.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Dmitry Mozzherin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-08-20 00:00:00.000000000 Z
11
+ date: 2015-08-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: treetop