revs-utils 1.0.11 → 1.0.12

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,15 +1,15 @@
1
1
  ---
2
2
  !binary "U0hBMQ==":
3
3
  metadata.gz: !binary |-
4
- YzdjYjY1ZDg5Mjk4MjEzOGE2YTI3MTQyOTI1ZWJiYThjYTc0NmEwOA==
4
+ MDRhNWEwYTJhYmIyOGVlM2E3YzEyYWFmYWRiYjE4Mzg2MjM2ZGI5ZA==
5
5
  data.tar.gz: !binary |-
6
- OWVhMWUzN2QyM2ExNzgyMGE2NDVmY2Y4ODhmZmMxZDhlNzE4NGE3YQ==
6
+ YTM3MjNmMjY0MmY2NDA0MDhiYmJhYjM5YjQwYjAzODZhOTA4OTc1Mg==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- Zjk4ZmE1ODFlZjdkODUzOTA0Yzc4ZmE5OTkyNWRjNTBkNjgxNDdhZGUwODBi
10
- ZmZhNzllOWViZDBiMGRjM2E5OTE0ZTQxNzc4NTIyNWE1YjgzZGFlMzFiMTUw
11
- YWQ5NjUzZDNlZTMzNWJjZjdhMzE5MzUxNjZkOTU2ODVkNWU3OGQ=
9
+ ZTc1ZjFhM2E2NzZkMjllMDg2MzRiOGI3ZmM4NmI5Mzk1Y2Y3NzU0ZDYyZmMz
10
+ ZDE3MWI0MGVhNTkxNTUwNDA3MmNjYmE3ZmQ2NjM1YTMwODkzMGZiNGVhYzVi
11
+ MGJiYjg2NDYxMDRiZDVkZDQzYmI1OTdiNTJhMDA0OGUxYTMwNDc=
12
12
  data.tar.gz: !binary |-
13
- MmJlZGU4MGJiZDQzMmRlYTVkYmQ5ZTUyYzRjMzhmZWEzMTJjNzZiMGFmNTU1
14
- ODk5YzliYmIyNjhiZDgxZjY5ZDFjZmJhODc1Nzg3OTQ1MzUzZWExMzhhOTA1
15
- NjNmYjI0OWM2OGFmNTBmNzRiZWYwMWQ0NDc1YTcyMjEzZmQ1YTI=
13
+ ZjQ2ZGEwNDA0OWIzYjFjMDlmYWZiNDJjYWRhOGI0M2U4OWNlNzFlZjU3Mjhh
14
+ OTAzY2JjOGExNDMxOTM5MGNhMmIxOTRkMzliMmRhMDBlNzUwODgxZWVkZWRk
15
+ ZGNlZDE5ZDkxYmVhNmZiYWRkMjEwOTIwZjNlMGMzMTY0NDA5MGE=
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- revs-utils (1.0.10)
4
+ revs-utils (1.0.12)
5
5
  actionpack (~> 3)
6
6
  countries (= 0.9.2)
7
7
  rdf
data/README.rdoc CHANGED
@@ -21,6 +21,7 @@ Shared methods and functions used by revs-indexer, pre-assembly and bulk metadat
21
21
  - <b>1.0.9</b> Add more common format corrections
22
22
  - <b>1.0.10</b> Update valid for metadata method so it is not sensitive to blank or uppercase columns
23
23
  - <b>1.0.11</b> Fix issues with year parsing
24
+ - <b>1.0.12</b> Allow two digit years in year formatting
24
25
 
25
26
  == Running tests
26
27
 
@@ -1,5 +1,5 @@
1
1
  module Revs
2
2
  module Utils
3
- VERSION = "1.0.11"
3
+ VERSION = "1.0.12"
4
4
  end
5
5
  end
data/lib/revs-utils.rb CHANGED
@@ -236,11 +236,14 @@ module Revs
236
236
  date_string.to_s.strip.scan(/\D/).empty? and (starting_year..Date.today.year).include?(date_string.to_i)
237
237
  end
238
238
 
239
- # tell us if the string passed is in is a full date of the format M/D/YYYY, and returns the date object if it is valid
239
+ # tell us if the string passed is in is a full date of the format M/D/YYYY or m-d-yyyy or m-d-yy or M/D/YY, and returns the date object if it is valid
240
240
  def get_full_date(date_string)
241
241
  begin
242
- date_obj=Date.strptime(date_string.gsub('-','/').delete(' '), '%m/%d/%Y')
243
- return (is_valid_year?(date_obj.year.to_s) ? date_obj : false)
242
+ date_obj_string=date_string.gsub('-','/').delete(' ')
243
+ date_format = (date_obj_string.split('/').last.size == 4 ? '%m/%d/%Y' : '%m/%d/%y') # if we think we have a 4 digit year, parse with 4 year format, else try the two year format
244
+ date_obj = Date.strptime(date_obj_string, date_format)
245
+ date_obj=date_obj.prev_year(100) if date_obj > Date.today # if the parsing yields a date in the future, this is a problem, so adjust back a century (due to this issue: http://stackoverflow.com/questions/27058068/ruby-incorrectly-parses-2-digit-year)
246
+ is_valid_year?(date_obj.year.to_s) ? date_obj : false
244
247
  rescue
245
248
  false
246
249
  end
@@ -76,10 +76,14 @@ describe "Revs-Utils" do
76
76
  end
77
77
 
78
78
  it "should indicate if a date is valid" do
79
- @revs.get_full_date('bogus').should be_false
80
79
  @revs.get_full_date('5/1/1959').should == Date.strptime("5/1/1959", '%m/%d/%Y')
81
80
  @revs.get_full_date('5-1-1959').should == Date.strptime("5/1/1959", '%m/%d/%Y')
82
- @revs.get_full_date('5-1-59').should be_false # two digit year is not allowed
81
+ @revs.get_full_date('5-1-2014').should == Date.strptime("5/1/2014", '%m/%d/%Y')
82
+ @revs.get_full_date('5-1-59').should == Date.strptime("5/1/1959", '%m/%d/%Y') # deal with two digit years ok too
83
+ @revs.get_full_date('1/1/71').should == Date.strptime("1/1/1971", '%m/%d/%Y') # deal with two digit years ok too
84
+ @revs.get_full_date('5-1-14').should == Date.strptime("5/1/2014", '%m/%d/%Y') # deal with two digit years ok too
85
+ @revs.get_full_date('5-1-21').should == Date.strptime("5/1/1921", '%m/%d/%Y') # deal with two digit years ok too
86
+ @revs.get_full_date('bogus').should be_false
83
87
  end
84
88
 
85
89
  it "should indicate if we have a valid year" do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: revs-utils
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.11
4
+ version: 1.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - Peter Mangiafico
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-01-21 00:00:00.000000000 Z
11
+ date: 2015-01-26 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: countries