rsmart_toolbox 0.10 → 0.11

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: 13ec30f97bddd32bc604c1395a371e5a8dd9c4bc
4
- data.tar.gz: bab3bab4ef63ebf15a26c2bd4a5d98966313c529
3
+ metadata.gz: 7ab463e0fe4efdc8c8264b52d9eb1de6b6f2c9cf
4
+ data.tar.gz: 441a7cc41c768e9f0cb906b9b4b14805e8f953e1
5
5
  SHA512:
6
- metadata.gz: f6cb52bfe81dcb9663609702eace294df5cef7b073214734398444fc2d3eb91b767b9477a712eed1f75f7cc67b8afdcc3f10770e34c2d5e6355479277bd30bd1
7
- data.tar.gz: da9dd51a65a9df329aca5c97efd9636c4713a2a9a218bdf2b2cdac3b0900e2c7d6355a5119ad851886c94af353fd590ed14ad4aab4d18b7f90b6e85f294c09a1
6
+ metadata.gz: 289a7548aabe2f24752affb7f3d36e2b2e46b305a38e76a7ca4c94a8a82e2753bec731a03845d6d9281a2221393709c9fa95db6792522eaef160d7dce23e5f0f
7
+ data.tar.gz: 956180913c4683d73c68caf9bd8f72015936f8bac666f290ed24201c01fb87e56a8064ad7e04633221829fb9cb24991e145d9c5172a24e1ba6485066211aac53
checksums.yaml.gz.sig CHANGED
Binary file
data.tar.gz.sig CHANGED
Binary file
data/README.md CHANGED
@@ -40,6 +40,13 @@ Usage: transform_CSV_to_HR_XML [options] csv_file
40
40
  -h, --help Display this screen
41
41
  ```
42
42
 
43
+ ### validate_HR_XML
44
+
45
+ ```
46
+ Usage: validate_HR_XML xml_file
47
+ -h, --help Display this screen
48
+ ```
49
+
43
50
  ## Contributing
44
51
 
45
52
  1. Fork it: https://github.com/rSmart/rsmart_toolbox/fork
@@ -5,11 +5,8 @@ require 'bundler/setup'
5
5
 
6
6
  require 'builder'
7
7
  require 'csv'
8
- require 'net/http'
9
- require 'nokogiri'
10
8
  require 'optparse'
11
9
  require 'rest_client'
12
- require 'tempfile'
13
10
  require 'time'
14
11
  require 'rsmart_toolbox/etl/grm'
15
12
 
@@ -302,33 +299,10 @@ CSV.open(opt[:csv_filename], opt[:csv_options]) do |csv|
302
299
  end # hrmanifest
303
300
  end # xml_file
304
301
  end # csv
302
+
305
303
  puts "\nXML file written to #{opt[:xml_filename]}\n\n"
306
304
 
307
- # validate the resulting XML file against the official XSD schema
308
- uri = URI 'https://raw.githubusercontent.com/rSmart/ce-tech-docs/master/hrmanifest.xsd'
309
- Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
310
- Tempfile.open "hrmanifest.xsd" do |file|
311
- request = Net::HTTP::Get.new uri
312
- http.request request do |response|
313
- response.read_body do |segment|
314
- file.write(segment)
315
- end
316
- end
317
- file.rewind
318
- xsd = Nokogiri::XML::Schema file
319
- doc = Nokogiri::XML File.read opt[:xml_filename]
320
- xml_errors = xsd.validate doc
321
- if xml_errors.empty?
322
- puts "Congratulations! The XML file passes XSD schema validation! w00t!\n\n"
323
- else
324
- puts "Sorry, the XML file does NOT pass XSD schema validation!:"
325
- xml_errors.each do |error|
326
- puts error.message
327
- end
328
- exit 1
329
- end
330
- end # file
331
- end
305
+ exit 1 unless GRM.validate_hr_xml opt[:xml_filename]
332
306
 
333
307
  # POST the XML file to the server if opt[:url]
334
308
  if opt[:url]
@@ -0,0 +1,32 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'rubygems'
4
+ require 'bundler/setup'
5
+
6
+ require 'optparse'
7
+ require 'rsmart_toolbox/etl/grm'
8
+
9
+ GRM = Rsmart::ETL::GRM
10
+
11
+ def self.parse_command_line_options( executable, args, opt={} )
12
+ optparse = OptionParser.new do |opts|
13
+ opts.banner = "Usage: #{executable} xml_file"
14
+ opts.on( '-h', '--help', 'Display this screen' ) do
15
+ puts opts
16
+ exit 1
17
+ end
18
+
19
+ opt[:xml_filename] = args[0] unless opt[:xml_filename]
20
+ if opt[:xml_filename].nil? || opt[:xml_filename].empty?
21
+ puts opts
22
+ exit 1
23
+ end
24
+ end
25
+ optparse.parse!
26
+
27
+ return opt
28
+ end
29
+
30
+ opt = parse_command_line_options (File.basename $0), ARGF.argv
31
+
32
+ exit 1 unless GRM.validate_hr_xml opt[:xml_filename]
@@ -14,6 +14,9 @@
14
14
  # You should have received a copy of the GNU Affero General Public License
15
15
  # along with this program. If not, see <http://www.gnu.org/licenses/>.
16
16
 
17
+ require 'net/http'
18
+ require 'nokogiri'
19
+ require 'tempfile'
17
20
  require "rsmart_toolbox/etl"
18
21
 
19
22
  # rSmart Grant and Research Management methods.
@@ -354,4 +357,38 @@ module Rsmart::ETL::GRM
354
357
  Rsmart::ETL::mutate_sql_stmt! insert_str, opt[:name], values_str, actv_ind
355
358
  end
356
359
 
360
+ # Performs an XML XSD schema validation using the published schema.
361
+ # @note Any schema validation errors are output to STDOUT via puts.
362
+ # @param xml_filename [String] A path to the XML file to be validated.
363
+ # @return [Boolean] true if no validation errors are found; otherwise false.
364
+ def self.validate_hr_xml(xml_filename)
365
+ ret_val = false
366
+ # validate the resulting XML file against the official XSD schema
367
+ uri = URI 'https://raw.githubusercontent.com/rSmart/ce-tech-docs/master/hrmanifest.xsd'
368
+ Net::HTTP.start(uri.host, uri.port, use_ssl: true) do |http|
369
+ Tempfile.open "hrmanifest.xsd" do |schema|
370
+ request = Net::HTTP::Get.new uri
371
+ http.request request do |response|
372
+ response.read_body do |segment|
373
+ schema.write(segment)
374
+ end
375
+ end
376
+ schema.rewind
377
+ xsd = Nokogiri::XML::Schema schema
378
+ doc = Nokogiri::XML File.read xml_filename
379
+ xml_errors = xsd.validate doc
380
+ if xml_errors.empty?
381
+ puts "Congratulations! The XML file passes XSD schema validation! w00t!\n\n"
382
+ ret_val = true
383
+ else
384
+ puts "Sorry, the XML file does NOT pass XSD schema validation!:"
385
+ xml_errors.each do |error|
386
+ puts error.message
387
+ end
388
+ end
389
+ end # schema
390
+ end
391
+ return ret_val
392
+ end
393
+
357
394
  end
@@ -16,5 +16,5 @@
16
16
 
17
17
  module Rsmart
18
18
  # The gem version number.
19
- VERSION = "0.10"
19
+ VERSION = "0.11"
20
20
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rsmart_toolbox
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.10'
4
+ version: '0.11'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Lance Speelmon
@@ -30,7 +30,7 @@ cert_chain:
30
30
  sKRWzEtHFamxQaIspOja5O4oQKiCbWa90fEuIoCtwyy1rQtL9VKoDTs4vZASXNuc
31
31
  F/lEyekXSjN36uTtlt4LkKLn/k7k5gRbt4+C9Q==
32
32
  -----END CERTIFICATE-----
33
- date: 2014-09-10 00:00:00.000000000 Z
33
+ date: 2014-09-17 00:00:00.000000000 Z
34
34
  dependencies:
35
35
  - !ruby/object:Gem::Dependency
36
36
  name: builder
@@ -135,6 +135,7 @@ email:
135
135
  - lspeelmon@rsmart.com
136
136
  executables:
137
137
  - transform_CSV_to_HR_XML
138
+ - validate_HR_XML
138
139
  extensions: []
139
140
  extra_rdoc_files: []
140
141
  files:
@@ -145,6 +146,7 @@ files:
145
146
  - README.md
146
147
  - Rakefile
147
148
  - bin/transform_CSV_to_HR_XML
149
+ - bin/validate_HR_XML
148
150
  - lib/rsmart_toolbox.rb
149
151
  - lib/rsmart_toolbox/etl.rb
150
152
  - lib/rsmart_toolbox/etl/grm.rb
metadata.gz.sig CHANGED
Binary file