stanford-mods 1.5.3 → 1.5.4

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 80b7166744ed54bca31cdcbfa1f400d5e05e3e24
4
- data.tar.gz: 41439aae07f4ab0d35913284f6c5d3ca3db85f1a
3
+ metadata.gz: 69a9ca8048029f26ee81d1ecedcfce609472a4fd
4
+ data.tar.gz: 94bebebe8d0ae3eab18dd309279af83a1e4d700e
5
5
  SHA512:
6
- metadata.gz: 6640e0395f1a500507ea4be9daccb561c85a6f0f02eff01a0e32260efe424cc4bb97a6ece0968a55d0bfbfdad8b45bac0e6ea6362edc6df6d242f32ee2829db2
7
- data.tar.gz: bf70600680517f261d291d5e377838b6d5b2aad36288bdc238e2b87e9bfbc2d2cf1c70b0c7aa3727f9655d0513cdf30d8290ece7f7e546de43955737777bc7f3
6
+ metadata.gz: 3c30ff296e9e66ebeac2be5d0924536516ae2b1d2939122c5ebf786f1347dd8072ff7a9ddab3a8211bec38d17731d7d032a7f6073c18a3da2f348fceaf6cfba6
7
+ data.tar.gz: 12c8c7f6af8e26172a041aaeb68c421c0a165477d9a8365088bc0af8453380e3e996e43b4de3647439603afc917769ab831ebd9c33649854bc71b2abf239e306
@@ -276,6 +276,8 @@ module Stanford
276
276
 
277
277
  # select one or more format values from the controlled vocabulary per JVine Summer 2014
278
278
  # http://searchworks-solr-lb.stanford.edu:8983/solr/select?facet.field=format_main_ssim&rows=0&facet.sort=index
279
+ # https://github.com/sul-dlss/stanford-mods/issues/66 - For geodata, the
280
+ # resource type should be only Map and not include Software, multimedia.
279
281
  # @return <Array[String]> value in the SearchWorks controlled vocabulary
280
282
  def format_main
281
283
  val = []
@@ -300,6 +302,7 @@ module Stanford
300
302
  case type
301
303
  when 'cartographic'
302
304
  val << 'Map'
305
+ val.delete 'Software/Multimedia'
303
306
  when 'mixed material'
304
307
  val << 'Archive/Manuscript'
305
308
  when 'moving image'
@@ -309,7 +312,7 @@ module Stanford
309
312
  when 'software, multimedia'
310
313
  if genres && (genres.include?('dataset') || genres.include?('Dataset'))
311
314
  val << 'Dataset'
312
- else
315
+ elsif (!val.include?('Map'))
313
316
  val << 'Software/Multimedia'
314
317
  end
315
318
  when 'sound recording-musical'
@@ -333,30 +336,28 @@ module Stanford
333
336
  end
334
337
 
335
338
  # return values for the genre facet in SearchWorks
339
+ # https://github.com/sul-dlss/stanford-mods/issues/66
340
+ # Limit genre values to Government document, Conference proceedings,
341
+ # Technical report and Thesis/Dissertation
336
342
  # @return <Array[String]>
337
343
  def sw_genre
338
344
  val = []
339
345
  genres = self.term_values(:genre)
340
346
  types = self.term_values(:typeOfResource)
341
347
  if genres
342
- val << genres.map(&:capitalize)
343
- val.flatten! if !val.empty?
344
348
  if genres.include?('thesis') || genres.include?('Thesis')
345
349
  val << 'Thesis/Dissertation'
346
- val.delete 'Thesis'
347
350
  end
348
351
  conf_pub = ['conference publication', 'Conference publication', 'Conference Publication']
349
352
  if !(genres & conf_pub).empty?
350
353
  if types && types.include?('text')
351
354
  val << 'Conference proceedings'
352
- val.delete 'Conference publication'
353
355
  end
354
356
  end
355
357
  gov_pub = ['government publication', 'Government publication', 'Government Publication']
356
358
  if !(genres & gov_pub).empty?
357
359
  if types && types.include?('text')
358
360
  val << 'Government document'
359
- val.delete 'Government publication'
360
361
  end
361
362
  end
362
363
  tech_rpt = ['technical report', 'Technical report', 'Technical Report']
@@ -366,10 +367,6 @@ module Stanford
366
367
  end
367
368
  end
368
369
  end
369
- # Archived website is in the MODS genre tag but it is considered a
370
- # Resource type for Searchworks, so it needs to be removed from the
371
- # applicable genre values
372
- val.delete 'Archived website'
373
370
  val.uniq
374
371
  end
375
372
 
@@ -1,6 +1,6 @@
1
1
  module Stanford
2
2
  module Mods
3
3
  # this is the Ruby Gem version
4
- VERSION = "1.5.3"
4
+ VERSION = "1.5.4"
5
5
  end
6
6
  end
@@ -739,8 +739,7 @@ SEARCHWORKS_PUB_DATE_DATA = {
739
739
  # project_south
740
740
  # reaction_kinetics?
741
741
  # reliability
742
- # renaissance
743
- 'xxx' =>
742
+ 'renaissance' =>
744
743
  { # key is mods_xml; values = [pub date sortable facet value, pub date single string facet value]
745
744
  # coll rec sr605np6062 no originInfo
746
745
  # mj187xt5183
@@ -808,18 +807,18 @@ SEARCHWORKS_PUB_DATE_DATA = {
808
807
  # rigler
809
808
  # rumsey
810
809
  'rumsey' =>
811
- { # key is mods_xml; values = [pub date sortable facet value, pub date single string facet value]
812
- # coll rec xh235dd9059 no originInfo
813
- # fy259fg4220
814
- mods_origin_info_start_str +
815
- '<dateIssued>1855.</dateIssued>' +
816
- mods_origin_info_end_str => [1855, '1855'],
817
- # hp058zk7170
818
- mods_origin_info_start_str +
819
- '<dateCreated encoding="marc">1861</dateCreated>' +
820
- '<dateIssued>1861.</dateIssued>' +
821
- mods_origin_info_end_str => [1861, '1861'],
822
- },
810
+ { # key is mods_xml; values = [pub date sortable facet value, pub date single string facet value]
811
+ # coll rec xh235dd9059 no originInfo
812
+ # fy259fg4220
813
+ mods_origin_info_start_str +
814
+ '<dateIssued>1855.</dateIssued>' +
815
+ mods_origin_info_end_str => [1855, '1855'],
816
+ # hp058zk7170
817
+ mods_origin_info_start_str +
818
+ '<dateCreated encoding="marc">1861</dateCreated>' +
819
+ '<dateIssued>1861.</dateIssued>' +
820
+ mods_origin_info_end_str => [1861, '1861']
821
+ },
823
822
  # rock?
824
823
  # scrf
825
824
  # shale
@@ -493,6 +493,13 @@ describe "Format fields (searchworks.rb)" do
493
493
  @smods_rec.from_str(m)
494
494
  expect(@smods_rec.format_main).to eq ['Software/Multimedia']
495
495
  end
496
+ # https://github.com/sul-dlss/stanford-mods/issues/66 - For geodata, the
497
+ # resource type should be only Map and not include Software, multimedia.
498
+ it "typeOfResource 'cartographic' and 'software, multimedia'" do
499
+ m = "<mods #{@ns_decl}><typeOfResource>cartographic</typeOfResource><typeOfResource>software, multimedia</typeOfResource></mods>"
500
+ @smods_rec.from_str(m)
501
+ expect(@smods_rec.format_main).to eq ['Map']
502
+ end
496
503
  end
497
504
 
498
505
  context "Sound Recording:" do
@@ -575,6 +582,11 @@ describe "Format fields (searchworks.rb)" do
575
582
  end #format_main
576
583
 
577
584
  context "sw_genre" do
585
+ it "ignores values that are not in the prescribed list" do
586
+ m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Not on the list</genre><typeOfResource>text</typeOfResource></mods>"
587
+ @smods_rec.from_str(m)
588
+ expect(@smods_rec.sw_genre).to eq []
589
+ end
578
590
  it "Conference proceedings: typeOfResource 'text', genre 'conference publication'" do
579
591
  m = "<mods #{@ns_decl}><genre authority=\"marcgt\">conference publication</genre><typeOfResource>text</typeOfResource></mods>"
580
592
  @smods_rec.from_str(m)
@@ -628,37 +640,36 @@ describe "Format fields (searchworks.rb)" do
628
640
  expect(@smods_rec.sw_genre).to_not eq ['Archived website']
629
641
  end
630
642
  it "capitalizes the first letter of a genre value" do
631
- m = "<mods #{@ns_decl}><genre authority=\"marcgt\">student project report</genre></mods>"
632
- @smods_rec.from_str(m)
633
- expect(@smods_rec.sw_genre).to eq ['Student project report']
634
- m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Student project report</genre></mods>"
643
+ m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre authority=\"marcgt\">technical report</genre></mods>"
635
644
  @smods_rec.from_str(m)
636
- expect(@smods_rec.sw_genre).to eq ['Student project report']
637
- m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Student Project report</genre></mods>"
645
+ expect(@smods_rec.sw_genre).to eq ['Technical report']
646
+ m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre authority=\"marcgt\">Technical report</genre></mods>"
638
647
  @smods_rec.from_str(m)
639
- expect(@smods_rec.sw_genre).to eq ['Student project report']
640
- m = "<mods #{@ns_decl}><genre authority=\"marcgt\">Student Project Report</genre></mods>"
648
+ expect(@smods_rec.sw_genre).to eq ['Technical report']
649
+ m = "<mods #{@ns_decl}><typeOfResource>text</typeOfResource><genre authority=\"marcgt\">Technical Report</genre></mods>"
641
650
  @smods_rec.from_str(m)
642
- expect(@smods_rec.sw_genre).to eq ['Student project report']
651
+ expect(@smods_rec.sw_genre).to eq ['Technical report']
643
652
  end
644
653
  # NOTE: may need to remove plurals and/or trailing punctuation in future
645
654
  it "returns all genre values" do
646
655
  m = "<mods #{@ns_decl}>
647
- <genre>game</genre>
648
- <genre>foo</genre>
649
- <genre>technical report</genre>
656
+ <typeOfResource>text</typeOfResource>
657
+ <genre>government publication</genre>
658
+ <genre>conference publication</genre>
659
+ <genre>thesis</genre>
650
660
  </mods>"
651
661
  @smods_rec.from_str(m)
652
- expect(@smods_rec.sw_genre).to eq ['Game', 'Foo', 'Technical report']
662
+ expect(@smods_rec.sw_genre).to eq ['Thesis/Dissertation', 'Conference proceedings', 'Government document']
653
663
  end
654
664
  it "doesn't have duplicates" do
655
665
  m = "<mods #{@ns_decl}>
656
- <genre>game</genre>
666
+ <typeOfResource>text</typeOfResource>
667
+ <genre>conference publication</genre>
657
668
  <genre>technical report</genre>
658
- <genre>Game</genre>
669
+ <genre>Conference publication</genre>
659
670
  </mods>"
660
671
  @smods_rec.from_str(m)
661
- expect(@smods_rec.sw_genre).to eq ['Game', 'Technical report']
672
+ expect(@smods_rec.sw_genre).to eq ['Conference proceedings', 'Technical report']
662
673
  end
663
674
  it "empty Array if no genre values" do
664
675
  m = "<mods #{@ns_decl}>
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: stanford-mods
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.5.3
4
+ version: 1.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Naomi Dushay
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2016-02-05 00:00:00.000000000 Z
12
+ date: 2016-02-11 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mods
@@ -167,7 +167,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
167
167
  version: '0'
168
168
  requirements: []
169
169
  rubyforge_project:
170
- rubygems_version: 2.4.5.1
170
+ rubygems_version: 2.4.8
171
171
  signing_key:
172
172
  specification_version: 4
173
173
  summary: Stanford specific wrangling of MODS metadata