revs-utils 2.1.9 → 2.1.10

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
- YjZhZjQyZjQ4ZGYxOGZhYTVmMGViYmYxNzAyOTc1MjdjMGE0ODQzZA==
4
+ YWY0NmMxMWFmY2FiODZkNjFjZjU2OGVhMjRlNGJiZmVlNWJjYzc3Ng==
5
5
  data.tar.gz: !binary |-
6
- YjViNjE5MjFlMWNmODNlYjNlYjdhODZkZWYyMzg5MzQ0ZDg0YzE5OQ==
6
+ MWFkNjhhNTA4M2VmODhiZDdkYmQ0ZjRjOTgyMjNiMjc1MDgwYTRhNQ==
7
7
  SHA512:
8
8
  metadata.gz: !binary |-
9
- ZjhlNDFkOWE3ZDlhNjFlZjEyYzUxNWJjOTdhYWVkNGFlMWNmOGI5ODhiZjYy
10
- MzMxODc4Njk0NWJlZWFjYWIxMTU0MjU4YjZjODg1ZWEzYWNkOTMwMjg1Zjc0
11
- OThkOWRhOGNkYmQwM2MxYjBiMDM2ODE5OTRmZTc4OWExMDRkNGQ=
9
+ MTEwNmNlZTA2MDc3MjczM2Q4ZWViYzFkNDE4NjY2YWYxMGIyZWQyMDU4YjEx
10
+ OTFjZTZhNjFjYjBjYTg4MDYyZmM0ZDU0YzdjNWM2ZDRmY2Y2NzhmZjM4OWRi
11
+ NmY3ZWZjMzJmZDBjOGEzMjgzY2UzMjg5NjFiZWEwOWViY2JhYjY=
12
12
  data.tar.gz: !binary |-
13
- NDBmYmY0ZDljNDQ0MDZiNDNjYjEwM2NmN2UyMjFjY2M4OGJlNmEyNTU0YjY0
14
- ZjU0NzFmN2UzNDYyMjViNjdhNWY1MzYxNjk0M2M2ODUwYjg0YzkyZTUyNjBj
15
- NDJkNThkODUzNDIyMzM4MTMxM2M4OTg2NmJhYjBiYWRkMTJkMzE=
13
+ YjcxYTQxMzQyMDRmOTFmNTlhY2VmOTI2ZjliOTc2Nzk3Y2YyYzc0M2Y0Mjcz
14
+ OTYwYTcwNzg1M2NlNmVlMjViOGJjZTA0OWMzZWY3OGI3YjY4NmJkZmU5ZGQ2
15
+ ZTZlNDg3ZTljZjQzMjQwOTJkYzY1YTUyODIxYWRlMDkwNWMzOTU=
@@ -1,5 +1,5 @@
1
1
  module Revs
2
2
  module Utils
3
- VERSION = "2.1.9"
3
+ VERSION = "2.1.10"
4
4
  end
5
5
  end
data/lib/revs-utils.rb CHANGED
@@ -174,18 +174,31 @@ module Revs
174
174
  # 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
175
175
  def check_valid_to_register(csv_data)
176
176
  #Make sure all the required headers are there
177
- return false if not get_manifest_section(REGISTER).values-csv_data[0].keys == []
177
+ result1=result2=result3=result4=true
178
+ if not get_manifest_section(REGISTER).values-csv_data[0].keys == []
179
+ puts "missing headers required for registration"
180
+ result1=false
181
+ end
178
182
  sources=Array.new
179
183
  #Make sure all files have entries for those required headers
180
184
  csv_data.each do |row|
181
185
  get_manifest_section(REGISTER).keys.each do |header| # label should be there as a column but does not always need a value
182
- return false if header.downcase !='label' && row[header].blank? #Alternatively consider row[header].class != String or row[header].size <= 0
186
+ if header.downcase !='label' && row[header].blank?
187
+ puts "#{row[get_manifest_section(REGISTER)['sourceid']]} does not have a value for a required registration field"
188
+ result2=false
189
+ end
183
190
  end
184
191
  fname = row[get_manifest_section(REGISTER)['filename']].chomp(File.extname(row[get_manifest_section(REGISTER)['filename']]))
185
- return false if ((row[get_manifest_section(REGISTER)['sourceid']] != fname) || ((/\s/ =~ row[get_manifest_section(REGISTER)['sourceid']].strip) != nil))
192
+ if ((row[get_manifest_section(REGISTER)['sourceid']] != fname) || ((/\s/ =~ row[get_manifest_section(REGISTER)['sourceid']].strip) != nil))
193
+ puts "#{row[get_manifest_section(REGISTER)['sourceid']]} does not match the filename or has a space in it"
194
+ result3=false
195
+ end
186
196
  sources << row[get_manifest_section(REGISTER)['sourceid']]
187
197
  end
188
- return sources.uniq.size == sources.size
198
+ result4 = (sources.uniq.size == sources.size)
199
+ puts "sourceIDs are not all unique" unless result4
200
+ return (result1 && result2 && result3 && result4)
201
+
189
202
  end
190
203
 
191
204
  # looks at certain metadata fields in manifest to confirm validity (such as dates and formats)
@@ -194,22 +207,35 @@ module Revs
194
207
  csv_data.each do |row|
195
208
  valid_date=revs_is_valid_datestring?(row[get_manifest_section(METADATA)['year']] || row[get_manifest_section(METADATA)['date']])
196
209
  valid_format=revs_is_valid_format?(row[get_manifest_section(METADATA)['format']])
197
- bad_rows+=1 unless (valid_date && valid_format)
210
+ unless (valid_date && valid_format)
211
+ bad_rows+=1
212
+ puts "#{row[get_manifest_section(REGISTER)['sourceid']]} has a bad year/date or format"
213
+ end
198
214
  end
199
215
  return bad_rows
200
216
  end
201
217
 
202
218
  # pass in csv data from a file read in and it will tell you if the headers are valid
203
219
  def check_headers(csv_data)
220
+
221
+ result1=result2=true
204
222
  file_headers=csv_data[0].keys.reject(&:blank?).collect(&:downcase)
205
223
  #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
206
224
  if file_headers.include?('date') && file_headers.include?('year') # can't have both date and year
207
- return false
208
- elsif 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
209
- return false
210
- else
211
- return file_headers-get_manifest_section(METADATA).values-get_manifest_section(REGISTER).values == []
225
+ puts "has both year and date columns"
226
+ result1=false
212
227
  end
228
+ 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
229
+ puts "has location column as well as specific state,city,country columns"
230
+ result2=false
231
+ end
232
+ extra_columns = file_headers-get_manifest_section(METADATA).values-get_manifest_section(REGISTER).values
233
+ has_extra_columns = (extra_columns == [])
234
+ puts "has unknown columns: #{extra_columns.join(', ')}" unless has_extra_columns
235
+ result3 = has_extra_columns
236
+
237
+ return (result1 && result2 && result3)
238
+
213
239
  end
214
240
 
215
241
  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: 2.1.9
4
+ version: 2.1.10
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-08-12 00:00:00.000000000 Z
11
+ date: 2015-09-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: countries