xlo 0.0.0.2 → 0.0.1.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 +4 -4
- data/README.md +21 -0
- data/bin/xlo +3 -3
- data/lib/xlo.rb +43 -25
- metadata +9 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3030a9e4552d5b2b12aaaa956b74e7d5e4c993de
|
4
|
+
data.tar.gz: f53949894cdd67557bebfe49af4b2b383a178327
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: ff9776f81a8d9031398cf7a0b1b8b2fa4f08fdd81ba2d50a2c5f75d44e532acefdf5ee3dbdc3e2eaa0dd6bc8c32fd16d4f3691ed630c1132bc1f0f2e3b69b213
|
7
|
+
data.tar.gz: 7e5d3e4ff0d02dfdca9b75c14b69184a277d1fa2bd52d61fbe243eaefeb3392ce4f06fab92794d0e1a2f9615329fed7f58ef60765fc6e86f7bebdbea9292702d
|
data/README.md
ADDED
@@ -0,0 +1,21 @@
|
|
1
|
+
# Xml Log Overview
|
2
|
+
XLO is a rnv/xmllint wrapper who captures the error generate by this validators and convert them into a csv file.
|
3
|
+
|
4
|
+
## Instruction
|
5
|
+
1. make all your xml file in the same folder
|
6
|
+
2. execute xlo : `xlo rnc-schema xml-folder`
|
7
|
+
|
8
|
+
## Installation
|
9
|
+
|
10
|
+
1. `gem install xlo`
|
11
|
+
2. `apt-get install rnv`
|
12
|
+
3. `apt-get install xmllint`
|
13
|
+
4. `xlo rnc-schema xml-folder`
|
14
|
+
|
15
|
+
## Note
|
16
|
+
the code contains several functions who could be use to like a ruby api
|
17
|
+
|
18
|
+
## Useful link
|
19
|
+
|
20
|
+
- http://www.davidashen.net/rnv.html
|
21
|
+
- http://rubygems.org/gems/xlo
|
data/bin/xlo
CHANGED
data/lib/xlo.rb
CHANGED
@@ -1,27 +1,35 @@
|
|
1
|
+
require 'open3'
|
2
|
+
|
1
3
|
class Xlo
|
2
4
|
|
3
|
-
def self.
|
5
|
+
def self.rnv_wrapper (_rnc, _dir)
|
4
6
|
list = []
|
5
|
-
Dir[_dir + "/" + "*.
|
6
|
-
|
7
|
-
|
8
|
-
|
7
|
+
Dir[_dir + "/" + "*.xml"].each do |file|
|
8
|
+
stdout = Open3.capture3("rnv #{_rnc} #{file}")
|
9
|
+
stdout = stdout[1].split("\n")
|
10
|
+
stdout.each do |line|
|
9
11
|
if (line.include?("error") && !line.include?("are invalid"))
|
10
12
|
list << line
|
11
13
|
end
|
12
|
-
end
|
13
14
|
end
|
14
15
|
end
|
15
16
|
return list
|
16
17
|
end
|
17
18
|
|
18
|
-
def self.
|
19
|
+
def self.rnv_error_dict (_list)
|
19
20
|
error = {}
|
20
21
|
_list.each do |el|
|
21
22
|
type = el.split("error")[1].split(" ")[1]
|
22
|
-
|
23
|
-
|
24
|
-
|
23
|
+
if (type == "attribute" || type == "element")
|
24
|
+
key = type + "; " + el[/\^.*/][1..-1]
|
25
|
+
filename = File.basename(el.split("error")[0])
|
26
|
+
filename[filename.length - 2] = ""
|
27
|
+
else
|
28
|
+
type = "other"
|
29
|
+
key = type + "; " + el.split("error:")[1]
|
30
|
+
filename = File.basename(el.split("error")[0])
|
31
|
+
filename[filename.length - 2] = ""
|
32
|
+
end
|
25
33
|
if (error.has_key?(key))
|
26
34
|
error[key] << " || " + filename
|
27
35
|
else
|
@@ -31,40 +39,50 @@ class Xlo
|
|
31
39
|
return error
|
32
40
|
end
|
33
41
|
|
34
|
-
def self.
|
42
|
+
def self.xmllint_wrapper (_dir)
|
35
43
|
list = []
|
36
|
-
|
37
|
-
|
38
|
-
|
44
|
+
Dir[_dir + "/" + "*.xml"].each do |file|
|
45
|
+
stdout = Open3.capture3("xmllint #{file}")
|
46
|
+
stdout = stdout[1].split("\n")
|
47
|
+
stdout.each do |line|
|
48
|
+
if (!line.include?(" ^"))
|
49
|
+
list << line.chomp
|
50
|
+
end
|
39
51
|
end
|
40
52
|
end
|
41
53
|
|
54
|
+
error = {}
|
42
55
|
list = list.values_at(* list.each_index.select {|i| i.even?})
|
43
56
|
list.each do |el|
|
44
57
|
split_el = el.split(" ")
|
45
58
|
type = el[/element|attribute/]
|
46
59
|
key = type + ";" + el.split(":")[-1]
|
47
60
|
filename = File.basename(split_el[0])[0..-2]
|
48
|
-
if (
|
49
|
-
|
61
|
+
if (error.has_key?(key))
|
62
|
+
error[key] << " || " + filename
|
50
63
|
else
|
51
|
-
|
64
|
+
error[key] = filename
|
52
65
|
end
|
53
66
|
end
|
67
|
+
return error
|
54
68
|
end
|
55
69
|
|
56
|
-
def self.main(_rnv_arg,
|
70
|
+
def self.main(_rnv_arg,_folder_arg)
|
57
71
|
|
72
|
+
error = []
|
58
73
|
f = File.new("error.csv", "w+")
|
59
74
|
f.write("type; error; freq; files \n")
|
60
|
-
error = self.create_error_dict(self.fill_list(_rnv_arg))
|
61
75
|
|
62
|
-
|
63
|
-
|
64
|
-
|
65
|
-
error
|
66
|
-
|
67
|
-
|
76
|
+
list = self.rnv_wrapper(_rnv_arg, _folder_arg)
|
77
|
+
error << self.rnv_error_dict(list)
|
78
|
+
|
79
|
+
error << self.xmllint_wrapper(_folder_arg)
|
80
|
+
|
81
|
+
error.each do |dict|
|
82
|
+
dict.each do |entry|
|
83
|
+
freq = entry[1].split("||").length.to_s
|
84
|
+
f.write(entry.insert(1, freq).join("; ")[0..-2] + "\n" )
|
85
|
+
end
|
68
86
|
end
|
69
87
|
end
|
70
88
|
end
|
metadata
CHANGED
@@ -1,27 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: xlo
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.0
|
4
|
+
version: 0.0.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Simon Meoni
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-06-
|
11
|
+
date: 2016-06-22 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
13
|
description: An aggregator of xml log for rnv and xmllint error
|
14
14
|
email: simonmeoni@aol.com
|
15
15
|
executables:
|
16
16
|
- xlo
|
17
17
|
extensions: []
|
18
|
-
extra_rdoc_files:
|
18
|
+
extra_rdoc_files:
|
19
|
+
- README.md
|
19
20
|
files:
|
21
|
+
- README.md
|
20
22
|
- bin/xlo
|
21
23
|
- lib/xlo.rb
|
22
24
|
homepage: http://rubygems.org/gems/xlo
|
23
25
|
licenses:
|
24
|
-
-
|
26
|
+
- GPL-3.0
|
25
27
|
metadata: {}
|
26
28
|
post_install_message:
|
27
29
|
rdoc_options: []
|
@@ -37,10 +39,11 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
37
39
|
- - ">="
|
38
40
|
- !ruby/object:Gem::Version
|
39
41
|
version: '0'
|
40
|
-
requirements:
|
42
|
+
requirements:
|
43
|
+
- rnv, xmllint
|
41
44
|
rubyforge_project:
|
42
45
|
rubygems_version: 2.2.2
|
43
46
|
signing_key:
|
44
47
|
specification_version: 4
|
45
|
-
summary:
|
48
|
+
summary: Xml Log Overview
|
46
49
|
test_files: []
|