ruby-jing 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
Files changed (5) hide show
  1. checksums.yaml +5 -5
  2. data/README.rdoc +4 -4
  3. data/lib/jing.rb +12 -8
  4. data/test/test_jing.rb +8 -0
  5. metadata +17 -4
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 19b9643f4db8f71aa3ef7df70166632203585784
4
- data.tar.gz: 7df428f044ebfae4cffcf95f0cf1adca60227782
2
+ SHA256:
3
+ metadata.gz: 9b1085cc25a09ba6773d7b0dfb4e6f8049054aaadccff23342b7a69861a64584
4
+ data.tar.gz: a033dc727afee925c526ec476f68a25b7e491efb6f5e799a755484e6c2d996d4
5
5
  SHA512:
6
- metadata.gz: be774aaf821cd382797c28b93146db7da50b114fc357c86bfefbd6e46a4d825f97c27ea88184634b4d08970a84af337852b1e697c95cdc73bce4b4d048b67c39
7
- data.tar.gz: f49cdcd0d6fa805f8530a8d2f531619885afbcdd3c614e4cd876c61f1e9906d9ff5ef9e929a407bff568ef886e5f79605b6ddfa681ca517badd456e777935c1a
6
+ metadata.gz: 1186148de2672e4ea4924cc7065878d3ce7a1d94732517bfb7159a613ffeb12bbec509b7bddf50c84ad2121ecf885e5a365edd09d2222562e89bcc8d0c872bbe
7
+ data.tar.gz: 9211e3e156bf374b48f32814c058a80d63df45ab6261e1726296b2ef319b037d4f045c199596e2b1efd95298a7c84da03c693a8138335b68fa417dee548025f6
data/README.rdoc CHANGED
@@ -1,6 +1,6 @@
1
1
  = Ruby Jing
2
2
 
3
- {<img src="https://secure.travis-ci.org/sshaw/ruby-jing.png"/>}[http://travis-ci.org/sshaw/ruby-jing]
3
+ {<img src="https://github.com/sshaw/ruby-jing/actions/workflows/rake.yml/badge.svg"/>}[https://github.com/sshaw/ruby-jing/actions/workflows/rake.yml]
4
4
  {<img src="https://codeclimate.com/github/sshaw/ruby-jing.png" />}[https://codeclimate.com/github/sshaw/ruby-jing]
5
5
 
6
6
  RELAX NG schema validation using the {Jing CLI}[http://www.thaiopensource.com/relaxng/jing.html]
@@ -55,7 +55,7 @@ Simple: good error messages. Let's look at the error messages provided by each o
55
55
 
56
56
  <!-- XML B -->
57
57
  <addressBook>
58
- <card verison="v100">
58
+ <card verison="v100">
59
59
  <name>John Smith</name>
60
60
  <oops>Doh!</oops>
61
61
  </card>
@@ -65,7 +65,7 @@ Simple: good error messages. Let's look at the error messages provided by each o
65
65
 
66
66
  schema = Nokogiri::XML::RelaxNG(File.read(rng))
67
67
  doc = Nokogiri::XML(File.read(xml))
68
- errors = schema.validate(doc)
68
+ errors = schema.validate(doc)
69
69
  errors.each { |e| puts e }
70
70
 
71
71
  Resulting errors:
@@ -87,7 +87,7 @@ Resulting errors:
87
87
 
88
88
  Fails for XML A and XML B --it treats the XML declaration as a validation error!
89
89
 
90
- Validation error. Expected: :start_element( addressBook ) from < S.1 #:start_element( addressBook ), < Z.2 #:start_element( card ), :start_attribute( version ), < C.3 :text( v1 ) or :text( v2 ) >, :end_attribute( ), :start_element( name ), :text( ), :end_element( ), :start_element( email ), :text( ), :end_element( ), :end_element( ) >, :end_element( ), :end_document( ) > but got <?xml ... ?>(
90
+ Validation error. Expected: :start_element( addressBook ) from < S.1 #:start_element( addressBook ), < Z.2 #:start_element( card ), :start_attribute( version ), < C.3 :text( v1 ) or :text( v2 ) >, :end_attribute( ), :start_element( name ), :text( ), :end_element( ), :start_element( email ), :text( ), :end_element( ), :end_element( ) >, :end_element( ), :end_document( ) > but got <?xml ... ?>(
91
91
  )
92
92
 
93
93
  ==== Jing
data/lib/jing.rb CHANGED
@@ -1,7 +1,7 @@
1
1
  require "optout"
2
2
 
3
3
  class Jing
4
- VERSION = "0.0.2"
4
+ VERSION = "0.0.3"
5
5
  DEFAULT_JAR = File.join(File.dirname(__FILE__), "jing-20091111.jar")
6
6
 
7
7
  Error = Class.new(StandardError)
@@ -89,9 +89,8 @@ class Jing
89
89
 
90
90
  out = execute(@options)
91
91
  return [] if $?.success? and out.empty?
92
- errors = parse_output(out)
93
- raise ExecutionError, out if errors.none? # There must have been a problem that was not schema related
94
- errors
92
+
93
+ parse_output(out)
95
94
  end
96
95
 
97
96
  # Validate an XML document against the schema. To receive a list of validation errors use #validate.
@@ -107,15 +106,15 @@ class Jing
107
106
  # Same as #validate
108
107
  #
109
108
  # === Returns
110
- #
109
+ #
111
110
  # [Boolean] +true+ if valid, +false+ if invalid
112
111
  #
113
-
112
+
114
113
  def valid?(xml)
115
114
  errors = validate(xml)
116
115
  errors.none?
117
116
  end
118
-
117
+
119
118
  private
120
119
  def execute(options)
121
120
  cmd = @@option_builder.shell(options)
@@ -129,13 +128,18 @@ class Jing
129
128
  def parse_output(output)
130
129
  errors = []
131
130
  output.split("\n").each do |line|
132
- if line =~ /\A(.+):(\d+):(\d+):\s+\w+:\s+(.+)\Z/
131
+ case line
132
+ when /\A(.+):(\d+):(\d+):\s+\w+:\s+(.+)\Z/
133
133
  errors << {
134
134
  :source => $1,
135
135
  :line => $2.to_i,
136
136
  :column => $3.to_i,
137
137
  :message => $4
138
138
  }
139
+ when /Picked up _JAVA_OPTIONS: /
140
+ # ignore diagnostic message
141
+ else # There must have been a problem that was not schema related
142
+ raise ExecutionError, output
139
143
  end
140
144
  end
141
145
  errors
data/test/test_jing.rb CHANGED
@@ -113,6 +113,14 @@ class TestJing < MiniTest::Unit::TestCase
113
113
  end
114
114
  end
115
115
 
116
+ def test_java_options_env_diagnostic_message
117
+ output = "Picked up _JAVA_OPTIONS: -Djava.io.tmpdir=/tmp"
118
+ fakeshell(:exit => 0, :output => output) {
119
+ errors = Jing.new(RNG_SCHEMA).validate(VALID_XML)
120
+ assert_equal 0, errors.size
121
+ }
122
+ end
123
+
116
124
  private
117
125
  def fakeshell(options = {})
118
126
  output = options.delete(:output) || ""
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-jing
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  platform: ruby
6
6
  authors:
7
7
  - Skye Shaw
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-10-16 00:00:00.000000000 Z
11
+ date: 2022-06-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: optout
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 0.0.2
27
+ - !ruby/object:Gem::Dependency
28
+ name: bundler
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :development
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: rake
29
43
  requirement: !ruby/object:Gem::Requirement
@@ -85,8 +99,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
85
99
  - !ruby/object:Gem::Version
86
100
  version: '0'
87
101
  requirements: []
88
- rubyforge_project:
89
- rubygems_version: 2.6.14
102
+ rubygems_version: 3.0.3
90
103
  signing_key:
91
104
  specification_version: 4
92
105
  summary: RELAX NG schema validation using the Jing CLI