stanford-mods 0.0.22 → 0.0.23

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,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- MzdlZDhiYmEzY2FjMjIyOTc0ODk5MDg3MDAyMDg4ZjFiMTdhZDRmZA==
4
+ OWYzOWJkOWZiZmE1YmIzZDQzY2UwM2ZmYjFkM2ZjM2QzMTQ1NjFhYg==
5
5
  data.tar.gz: !binary |-
6
- ZWU0MzAxMmUxZmVlZGQ0OWFlMWQwOTZjNWQ5OGMzNWRmMTgxMTgzYw==
7
- SHA512:
6
+ ODhmMTJhNzAwMmIwNjhhYmM0ODk2OGIzNzMwZjM4NGQ1NTg4MTI5Yg==
7
+ !binary "U0hBNTEy":
8
8
  metadata.gz: !binary |-
9
- ZDNhOTEyMGRjYjk5OGM0NDc2Y2NhYWYwZTVhMTBlOGU3NmI0ODM3OGY4ZDRm
10
- ODA1MjNkMzhiMjFjOWJhMjgwMmJkODU3NmNmZTJkNmJkZDU4Zjk4Njc1ZGIy
11
- NzFkOTU1NDIwYjc4ZGFkOTk2MGQ3NTJlZGU3NWVlYTExMDRjYzQ=
9
+ NjA1YWI5ZGM2MzE4NjU2YmQ1YzYwYjhjZDcyMzg3Njk3YmVhMTRiMmI0ZTll
10
+ MDdmMjU1ZDU2MGU3ZDg4NmMyN2I0MThlNDI1YTRjOGUzNmY0YWFjNWE4Zjg1
11
+ MjViOTYzYTI2ZTBhZDE4OGJjNmZhOTAwNTMxZmIyNmYzNTBkNGI=
12
12
  data.tar.gz: !binary |-
13
- NjVkZDFkNDJkMjQwNzVlMDk1NzA2YzllMDRmMWJkOTZhYzZmYzljMTUxNmQ3
14
- YjE1OGRmMmZjNDU0MjA2ZjRmZDY1YTdhMmQ0MDE5ZGYxMjY2ZDZmNjcwMTA0
15
- ZWE3NmJiZGM5NWE3YzY5Zjk2ZjhjZTQ0NDM5NzY5MjY2OGVjNWM=
13
+ ZmIyMjljNzEyMDZiZmE4Y2Q3NDM3NGExNDM1YTVmZGM1MzAzODcyZGEyNjNk
14
+ NjdmMzJhYTQ4ZDNjNTJmNmNlOGM4ZWQ4MjE5ZDRjYjYxMTZiZWE5OTNlY2Fi
15
+ ZGViMTgwNjhjZDE2ODY2NjY2M2VjODcyMmNlYWI3NzRhNzg4ZTU=
data/.travis.yml CHANGED
@@ -6,6 +6,6 @@ rvm:
6
6
  notifications:
7
7
  email:
8
8
  - ndushay@stanford.edu
9
- - jdeering@stanford.edu
9
+ - bess@stanford.edu
10
10
  before_install:
11
11
  gem update --system 1.8.24
data/README.rdoc CHANGED
@@ -59,7 +59,7 @@ Example Using SearchWorks Mixins:
59
59
  6. Create new Pull Request
60
60
 
61
61
  == Releases
62
-
62
+ * <b>0.0.23</b> Added logic for dealing with "u-notation" approximate dates, e.g., 198u
63
63
  * <b>0.0.20</b> Added mapping for typeOfResource notated music
64
64
  * <b>0.0.19</b> Additional mappings, including Hydrus formats (GRYPHONDOR-207)
65
65
  * <b>0.0.11</b> escape regex special characters when using short title in a regex
@@ -389,6 +389,7 @@ module Stanford
389
389
  end
390
390
  vals and vals.empty? ? nil : vals
391
391
  end
392
+
392
393
  def is_number?(object)
393
394
  true if Integer(object) rescue false
394
395
  end
@@ -397,7 +398,7 @@ module Stanford
397
398
  end
398
399
 
399
400
  # Get the publish year from mods
400
- #@return [String] 4 character year or nil if no valid date was found
401
+ # @return [String] 4 character year or nil if no valid date was found
401
402
  def pub_year
402
403
  #use the cached year if there is one
403
404
  if @pub_year
@@ -417,6 +418,9 @@ module Stanford
417
418
  #try to find a date starting with the most normal date formats and progressing to more wonky ones
418
419
  @pub_year=get_plain_four_digit_year pruned_dates
419
420
  return @pub_year if @pub_year
421
+ # Check for years in u notation, e.g., 198u
422
+ @pub_year=get_u_year pruned_dates
423
+ return @pub_year if @pub_year
420
424
  @pub_year=get_double_digit_century pruned_dates
421
425
  return @pub_year if @pub_year
422
426
  @pub_year=get_bc_year pruned_dates
@@ -567,6 +571,25 @@ module Stanford
567
571
  end
568
572
  return nil
569
573
  end
574
+
575
+ # If a year has a "u" in it, replace instances of u with 0
576
+ # @param [String]
577
+ # @return String
578
+ def get_u_year dates
579
+ dates.each do |f_date|
580
+ # Single digit u notation
581
+ matches=f_date.scan(/\d{3}u/)
582
+ if matches.length == 1
583
+ return matches.first.gsub('u','0')
584
+ end
585
+ # Double digit u notation
586
+ matches=f_date.scan(/\d{2}u{2}/)
587
+ if matches.length == 1
588
+ return matches.first.gsub('u','-')
589
+ end
590
+ end
591
+ return nil
592
+ end
570
593
 
571
594
  #get a double digit century like '12th century' from the date array
572
595
  def get_double_digit_century dates
@@ -1,6 +1,6 @@
1
1
  module Stanford
2
2
  module Mods
3
3
  # this is the Ruby Gem version
4
- VERSION = "0.0.22"
4
+ VERSION = "0.0.23"
5
5
  end
6
6
  end
@@ -571,6 +571,59 @@ describe "Searchworks mixin for Stanford::Mods::Record" do
571
571
  @smods_rec.pub_date_facet.should == '9th century'
572
572
  end
573
573
 
574
+ context "dates with u notation (e.g., 198u)" do
575
+ context "single digit u notation (e.g., 198u)" do
576
+ before(:each) do
577
+ m = "<mods #{@ns_decl}>
578
+ <originInfo>
579
+ <dateIssued encoding=\"marc\" point=\"start\" keyDate=\"yes\">198u</dateIssued>
580
+ <dateIssued encoding=\"marc\" point=\"end\">9999</dateIssued>
581
+ </originInfo></mods>"
582
+ @smods_rec = Stanford::Mods::Record.new
583
+ @smods_rec.from_str(m)
584
+ end
585
+ it "recognizes single digit u notation" do
586
+ dates = ["198u", "9999"]
587
+ uDate = @smods_rec.get_u_year dates
588
+ uDate.should eql("1980")
589
+ end
590
+ it 'pub_date: 198u = 1980' do
591
+ @smods_rec.pub_date.should == '1980'
592
+ end
593
+ it "pub_date_sort: 198u = 1980" do
594
+ @smods_rec.pub_date_sort.should =='1980'
595
+ end
596
+ it "pub_date_facet: 198u = 1980" do
597
+ @smods_rec.pub_date_facet.should == '1980'
598
+ end
599
+ end
600
+ context "double digit u notation (e.g., 19uu)" do
601
+ before(:each) do
602
+ m = "<mods #{@ns_decl}>
603
+ <originInfo>
604
+ <dateIssued encoding=\"marc\" point=\"start\" keyDate=\"yes\">19uu</dateIssued>
605
+ <dateIssued encoding=\"marc\" point=\"end\">9999</dateIssued>
606
+ </originInfo></mods>"
607
+ @smods_rec = Stanford::Mods::Record.new
608
+ @smods_rec.from_str(m)
609
+ end
610
+ it "recognizes double digit u notation" do
611
+ dates = ["19uu", "9999"]
612
+ uDate = @smods_rec.get_u_year dates
613
+ uDate.should eql("19--")
614
+ end
615
+ it 'pub_date: 19uu = 19--' do
616
+ @smods_rec.pub_date.should == '19--'
617
+ end
618
+ it "pub_date_sort: 19uu = 1900" do
619
+ @smods_rec.pub_date_sort.should =='1900'
620
+ end
621
+ it "pub_date_facet: 19uu = 20th century" do
622
+ @smods_rec.pub_date_facet.should == '20th century'
623
+ end
624
+ end
625
+ end
626
+
574
627
 
575
628
 
576
629
 
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: 0.0.22
4
+ version: 0.0.23
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: 2013-11-26 00:00:00.000000000 Z
12
+ date: 2014-02-04 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: mods
@@ -160,7 +160,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
160
160
  version: '0'
161
161
  requirements: []
162
162
  rubyforge_project:
163
- rubygems_version: 2.1.11
163
+ rubygems_version: 2.0.7
164
164
  signing_key:
165
165
  specification_version: 4
166
166
  summary: Stanford specific wrangling of MODS metadata