revs-utils 1.0.18 → 1.0.19
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +8 -8
- data/lib/revs-utils/version.rb +1 -1
- data/lib/revs-utils.rb +36 -10
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,15 +1,15 @@
|
|
1
1
|
---
|
2
2
|
!binary "U0hBMQ==":
|
3
3
|
metadata.gz: !binary |-
|
4
|
-
|
4
|
+
YzAzNjMxYjAzOTE5YTcwOTJjYTc1MDkyOTg4NDM0MTA4NzU4ZDBjMw==
|
5
5
|
data.tar.gz: !binary |-
|
6
|
-
|
6
|
+
MmRhMjIzYTcwMmUxM2ZiYmFhODY2NzA2MzhlNDcyNDAwZTRlNzA1Yw==
|
7
7
|
SHA512:
|
8
8
|
metadata.gz: !binary |-
|
9
|
-
|
10
|
-
|
11
|
-
|
9
|
+
ODdiMDBmYmZmNTkyMzhlOGJiZmRlYTMwOTdkN2E2MzdmNmM5YjdlNWMwMTg0
|
10
|
+
OTJjYTk2NzczMTJjYWMzZDU4MjhmNjE1NWNhNWFlNjRlOTk0M2JiZDI4OTBk
|
11
|
+
MzI0MzkzNzRhODZiODYxYjdhZTkyNDg3ZWFjY2QxODMxMjVmYjY=
|
12
12
|
data.tar.gz: !binary |-
|
13
|
-
|
14
|
-
|
15
|
-
|
13
|
+
Nzg1OTQ1OTk1OGNmMWI2ODY0ZWE4M2Y1NDNlNWEzYWFhZGVhZTRhY2FiMjE4
|
14
|
+
ZDRhOWE4NjY3NjVjZWJiYWQ3N2U1OTYyOGI1ZTY5MTc5OTFiYzE2ODU3MDkz
|
15
|
+
NzFiMjE1Njg4NmZlMjVkMDI2NDM3ZDVhOGJiZTMzYThhY2MzNTM=
|
data/lib/revs-utils/version.rb
CHANGED
data/lib/revs-utils.rb
CHANGED
@@ -95,18 +95,31 @@ module Revs
|
|
95
95
|
# pass in csv data and it will tell if you everything is safe to register based on having labels, unique sourceIDs and filenames matching sourceIDs
|
96
96
|
def check_valid_to_register(csv_data)
|
97
97
|
#Make sure all the required headers are there
|
98
|
-
|
98
|
+
result1=result2=result3=result4=true
|
99
|
+
if not get_manifest_section(REGISTER).values-csv_data[0].keys == []
|
100
|
+
puts "missing headers required for registration"
|
101
|
+
result1=false
|
102
|
+
end
|
99
103
|
sources=Array.new
|
100
104
|
#Make sure all files have entries for those required headers
|
101
105
|
csv_data.each do |row|
|
102
106
|
get_manifest_section(REGISTER).keys.each do |header| # label should be there as a column but does not always need a value
|
103
|
-
|
107
|
+
if header.downcase !='label' && row[header].blank?
|
108
|
+
puts "#{row[get_manifest_section(REGISTER)['sourceid']]} does not have a value for a required registration field"
|
109
|
+
result2=false
|
110
|
+
end
|
104
111
|
end
|
105
112
|
fname = row[get_manifest_section(REGISTER)['filename']].chomp(File.extname(row[get_manifest_section(REGISTER)['filename']]))
|
106
|
-
|
113
|
+
if ((row[get_manifest_section(REGISTER)['sourceid']] != fname) || ((/\s/ =~ row[get_manifest_section(REGISTER)['sourceid']].strip) != nil))
|
114
|
+
puts "#{row[get_manifest_section(REGISTER)['sourceid']]} does not match the filename or has a space in it"
|
115
|
+
result3=false
|
116
|
+
end
|
107
117
|
sources << row[get_manifest_section(REGISTER)['sourceid']]
|
108
118
|
end
|
109
|
-
|
119
|
+
result4 = (sources.uniq.size == sources.size)
|
120
|
+
puts "sourceIDs are not all unique" unless result4
|
121
|
+
return (result1 && result2 && result3 && result4)
|
122
|
+
|
110
123
|
end
|
111
124
|
|
112
125
|
# looks at certain metadata fields in manifest to confirm validity (such as dates and formats)
|
@@ -115,22 +128,35 @@ module Revs
|
|
115
128
|
csv_data.each do |row|
|
116
129
|
valid_date=revs_is_valid_datestring?(row[get_manifest_section(METADATA)['year']] || row[get_manifest_section(METADATA)['date']])
|
117
130
|
valid_format=revs_is_valid_format?(row[get_manifest_section(METADATA)['format']])
|
118
|
-
|
131
|
+
unless (valid_date && valid_format)
|
132
|
+
bad_rows+=1
|
133
|
+
puts "#{row[get_manifest_section(REGISTER)['sourceid']]} has a bad year/date or format"
|
134
|
+
end
|
119
135
|
end
|
120
136
|
return bad_rows
|
121
137
|
end
|
122
138
|
|
123
139
|
# pass in csv data from a file read in and it will tell you if the headers are valid
|
124
140
|
def check_headers(csv_data)
|
141
|
+
|
142
|
+
result1=result2=true
|
125
143
|
file_headers=csv_data[0].keys.reject(&:blank?).collect(&:downcase)
|
126
144
|
#The file doesn't need to have all the metadata values, it just can't have headers that aren't used for metadata or registration
|
127
145
|
if file_headers.include?('date') && file_headers.include?('year') # can't have both date and year
|
128
|
-
|
129
|
-
|
130
|
-
return false
|
131
|
-
else
|
132
|
-
return file_headers-get_manifest_section(METADATA).values-get_manifest_section(REGISTER).values == []
|
146
|
+
puts "has both year and date columns"
|
147
|
+
result1=false
|
133
148
|
end
|
149
|
+
if file_headers.include?('location') && file_headers.include?('state') && file_headers.include?('city') && file_headers.include?('country') # can't have both location and the specific fields
|
150
|
+
puts "has location column as well as specific state,city,country columns"
|
151
|
+
result2=false
|
152
|
+
end
|
153
|
+
extra_columns = file_headers-get_manifest_section(METADATA).values-get_manifest_section(REGISTER).values
|
154
|
+
has_extra_columns = (extra_columns == [])
|
155
|
+
puts "has unknown columns: #{extra_columns.join(', ')}" unless has_extra_columns
|
156
|
+
result3 = has_extra_columns
|
157
|
+
|
158
|
+
return (result1 && result2 && result3)
|
159
|
+
|
134
160
|
end
|
135
161
|
|
136
162
|
def clean_collection_name(name)
|
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.
|
4
|
+
version: 1.0.19
|
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-
|
11
|
+
date: 2015-09-02 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: countries
|