validate_xml_xsi 0.1.2 → 0.2.0

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,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ed79db97f53c99c86dff5c5acb649d7115dddd137ed5f91174aa12fe93187cf0
4
- data.tar.gz: e6c379c63075f570f2f377f678476e410cbc5e0feb5a8091a4cc437b4b077877
3
+ metadata.gz: 4fa9e060212c9992fc22333d6858d9005c0f0be545a1f921c2324fda0071a634
4
+ data.tar.gz: 880b5e1af35f7cfb1f7c71f09b7fd676632bf921c3ecd5af657c6ce0e4b36df6
5
5
  SHA512:
6
- metadata.gz: b8b464eff0d093ad0d3d7939045dcf3867f053f03966675a053a520af5786ebbef560584c17116bd2b0af7c101056772561621f6d1745404d3827a1e4807e85c
7
- data.tar.gz: 32cf5298a1c8eca642701cec2966612fd3eabe17ed41ac92d531200d3f96a89a85d74a8a447ce4b0fc82209de200e0b5b92550f6d91ffa3e8264012475e4928a
6
+ metadata.gz: 63187e958fc288c4722444b0b73464a8af4f94776516dd619feb33bc9cbafbdc69dfca7c72fe7184a95c7014a838fbf10245db6d126d4beea1f04049573ef7f8
7
+ data.tar.gz: '0975b1be594880e516af4b8a0e758c50eec6c1d4d92621d4e3c870cfcdddde2c1f32973812f3ff4167832958d62f8bb2afb1563db462557904e2b8471c12e3e4'
data/CHANGELOG.md CHANGED
@@ -1,3 +1,15 @@
1
+ ## v0.2.0
2
+
3
+ * Change namespace to XML_XSI and rename/promote Validation::Error to Schema::ValidationError < StandardError.
4
+
5
+ ## v0.1.4
6
+
7
+ * Change module XML, Validation, & Schema to be classes instead.
8
+
9
+ ## v0.1.3
10
+
11
+ * Rev Nokogiri requirement to >= 1.13.2 for CVE-2021-30560 & CVE-2022-23308
12
+
1
13
  ## v0.1.1
2
14
 
3
15
  * Rev Nokogiri requirement to ~> 1.12.5 for CVE-2021-41098
@@ -1,18 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'nokogiri'
3
3
 
4
- module XML
5
- module Validation
6
- class Error
7
- Params = [:type, :file, :line, :column, :message, :err]
8
- attr_reader *Params, :description
9
- def initialize(*args)
10
- Params.each.with_index { |param, idx| instance_variable_set("@#{param.to_s}", args[idx]) }
11
- @description = "#{@type.to_s} ERROR [#{@file}:#{@line}:#{@column}]: #{@message}".freeze
12
- end
13
- end
14
- end
15
-
4
+ class XML_XSI
16
5
  def self.parse(obj)
17
6
  filename = nil
18
7
  obj = File::read(filename = obj) if obj.is_a?(String) && File::exist?(obj)
@@ -22,9 +11,19 @@ module XML
22
11
  xml_doc
23
12
  end
24
13
 
25
- module Schema
14
+ class Schema
15
+ class ValidationError < StandardError
16
+ Params = [:type, :file, :line, :column, :message, :err]
17
+ attr_reader *Params, :description
18
+ def initialize(*args)
19
+ Params.each.with_index { |param, idx| instance_variable_set("@#{param.to_s}", args[idx]) }
20
+ @description = "#{@type.to_s} ERROR [#{@file}:#{@line}:#{@column}]: #{@message}".freeze
21
+ super(@description)
22
+ end
23
+ end
24
+
26
25
  def self.validate(xml_doc)
27
- xml_doc = XML::parse(xml_doc) unless xml_doc.is_a?(Nokogiri::XML::Document)
26
+ xml_doc = XML_XSI::parse(xml_doc) unless xml_doc.is_a?(Nokogiri::XML::Document)
28
27
  errors = []
29
28
  ## Build an all-in-one XSD document that imports all of the separate schema locations
30
29
  xsd_doc = "<?xml version=\"1.0\"?>\n"
@@ -52,13 +51,13 @@ module XML
52
51
  xsd = Nokogiri::XML.Schema(xsd_doc)
53
52
  xsd.errors.each do |err|
54
53
  err_msg = (/ERROR: /.match(err.message)) ? $' : err.message
55
- errors << XML::Validation::Error.new(:XSD, err.file, err.line, err.column, err_msg, err)
54
+ errors << ValidationError.new(:XSD, err.file, err.line, err.column, err_msg, err)
56
55
  end
57
56
  errs = xsd.validate(xml_doc)
58
57
  errs.each do |err|
59
58
  err_msg = (/ERROR: /.match(err.message)) ? $' : err.message
60
59
  fname = (err.file.nil?) ? xml_doc.filename : err.file
61
- errors << XML::Validation::Error.new(:XML, fname, err.line, err.column, err_msg, err)
60
+ errors << ValidationError.new(:XML, fname, err.line, err.column, err_msg, err)
62
61
  end
63
62
  errors
64
63
  end
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |spec|
2
2
  spec.name = "validate_xml_xsi"
3
- spec.version = "0.1.2"
3
+ spec.version = "0.2.0"
4
4
  spec.authors = ["David Hansen"]
5
5
  spec.email = ["david@hansen4.net"]
6
6
 
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
 
12
12
  spec.metadata["homepage_uri"] = spec.homepage
13
13
  spec.metadata["source_code_uri"] = "https://github.com/d-hansen/validate_xml_xsi"
14
- spec.metadata["changelog_uri"] = "https://github.com/d-hansen/validate_xml_xsi/CHANGELOG.md"
14
+ spec.metadata["changelog_uri"] = "https://github.com/d-hansen/validate_xml_xsi/blob/master/CHANGELOG.md"
15
15
 
16
16
  # Specify which files should be added to the gem when it is released.
17
17
  # The `git ls-files -z` loads the files in the RubyGem that have been added into git.
@@ -22,8 +22,8 @@ Gem::Specification.new do |spec|
22
22
  spec.executables = spec.files.grep(%r{^bin/}) { |f| File.basename(f) }
23
23
  spec.require_paths = ["lib"]
24
24
 
25
- spec.add_development_dependency "bundler", "~> 2.1"
26
- spec.add_development_dependency "rake", "~> 13.0"
25
+ spec.add_development_dependency "bundler", ">= 2.1"
26
+ spec.add_development_dependency "rake", ">= 13.0"
27
27
 
28
- spec.add_dependency "nokogiri", "~> 1.12.5"
28
+ spec.add_dependency "nokogiri", ">= 1.13.2"
29
29
  end
metadata CHANGED
@@ -1,57 +1,57 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: validate_xml_xsi
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.2
4
+ version: 0.2.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Hansen
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-12-21 00:00:00.000000000 Z
11
+ date: 2022-03-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - "~>"
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '2.1'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - "~>"
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.1'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - "~>"
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '13.0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - "~>"
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '13.0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: nokogiri
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - "~>"
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
- version: 1.12.5
47
+ version: 1.13.2
48
48
  type: :runtime
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - "~>"
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
- version: 1.12.5
54
+ version: 1.13.2
55
55
  description:
56
56
  email:
57
57
  - david@hansen4.net
@@ -75,7 +75,7 @@ licenses:
75
75
  metadata:
76
76
  homepage_uri: https://github.com/d-hansen/validate_xml_xsi
77
77
  source_code_uri: https://github.com/d-hansen/validate_xml_xsi
78
- changelog_uri: https://github.com/d-hansen/validate_xml_xsi/CHANGELOG.md
78
+ changelog_uri: https://github.com/d-hansen/validate_xml_xsi/blob/master/CHANGELOG.md
79
79
  post_install_message:
80
80
  rdoc_options: []
81
81
  require_paths:
@@ -91,7 +91,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
91
91
  - !ruby/object:Gem::Version
92
92
  version: '0'
93
93
  requirements: []
94
- rubygems_version: 3.0.3
94
+ rubygems_version: 3.3.8
95
95
  signing_key:
96
96
  specification_version: 4
97
97
  summary: Validate XML against it's embedded XSI elements that define the XSD's.